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  }