From 1f660b7ecf1a78ce50cdb3082faa4ded057890ab Mon Sep 17 00:00:00 2001 From: Henrique Dias Date: Thu, 11 Aug 2016 22:26:41 +0100 Subject: [PATCH] update --- directory/file.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/directory/file.go b/directory/file.go index 8596b287..c98b2e79 100644 --- a/directory/file.go +++ b/directory/file.go @@ -1,6 +1,7 @@ package directory import ( + "encoding/json" "fmt" "io/ioutil" "net/http" @@ -225,6 +226,16 @@ func (i *Info) serveListing(w http.ResponseWriter, r *http.Request, c *config.Co listing.ItemsLimitedTo = limit } + if strings.Contains(r.Header.Get("Accept"), "application/json") { + marsh, err := json.Marshal(listing) + if err != nil { + return http.StatusInternalServerError, err + } + + w.Header().Set("Content-Type", "application/json; charset=utf-8") + return w.Write(marsh) + } + page := &p.Page{ Info: &p.Info{ Name: listing.Name, @@ -239,10 +250,6 @@ func (i *Info) serveListing(w http.ResponseWriter, r *http.Request, c *config.Co page.Minimal = true } - if strings.Contains(r.Header.Get("Accept"), "application/json") { - return page.PrintAsJSON(w) - } - return page.PrintAsHTML(w, "listing") }