github.com/titpetric/pendulum@v0.1.180207-1512.0.20180514135826-1f399445df57/cmd/pendulum/handlers.go (about) 1 package main 2 3 import ( 4 "strings" 5 "net/http" 6 ) 7 8 func (api *API) ListHandler(w http.ResponseWriter, r *http.Request) { 9 var err error 10 11 response := struct { 12 Response ListResponse `json:"response"` 13 }{} 14 15 response.Response.Folder = r.URL.Path 16 response.Response.Files, err = api.List(strings.Replace(r.URL.Path, "/api/list", "", 1)) 17 if err != nil { 18 api.ServeJSON(w, r, api.Error(err)) 19 return 20 } 21 api.ServeJSON(w, r, response) 22 } 23 24 func (api *API) ReadHandler(w http.ResponseWriter, r *http.Request) { 25 var err error 26 27 response := struct { 28 Response ReadResponse `json:"response"` 29 }{} 30 response.Response, err = api.Read(strings.Replace(r.URL.Path, "/api/read", "", 1)) 31 32 if err != nil { 33 api.ServeJSON(w, r, api.Error(err)) 34 return 35 } 36 api.ServeJSON(w, r, response) 37 } 38 39 func (api *API) StoreHandler(w http.ResponseWriter, r *http.Request) { 40 var err error 41 42 response := struct { 43 Response StoreResponse `json:"response"` 44 }{} 45 response.Response, err = api.Store(strings.Replace(r.URL.Path, "/api/store", "", 1), r.PostFormValue("contents")) 46 47 if err != nil { 48 api.ServeJSON(w, r, api.Error(err)) 49 return 50 } 51 api.ServeJSON(w, r, response) 52 }