MCPcopy
hub / github.com/usefathom/fathom / SaveSiteHandler

Method SaveSiteHandler

pkg/api/sites.go:30–60  ·  view source on GitHub ↗

POST /api/sites POST /api/sites/{id}

(w http.ResponseWriter, r *http.Request)

Source from the content-addressed store, hash-verified

28// POST /api/sites
29// POST /api/sites/{id}
30func (api *API) SaveSiteHandler(w http.ResponseWriter, r *http.Request) error {
31 var s *models.Site
32 vars := mux.Vars(r)
33 sid, ok := vars["id"]
34 if ok {
35 id, err := strconv.ParseInt(sid, 10, 64)
36 if err != nil {
37 return err
38 }
39
40 s, err = api.database.GetSite(id)
41 if err != nil {
42 return err
43 }
44 } else {
45 s = &models.Site{
46 TrackingID: generateTrackingID(),
47 }
48 }
49
50 err := json.NewDecoder(r.Body).Decode(s)
51 if err != nil {
52 return err
53 }
54
55 if err := api.database.SaveSite(s); err != nil {
56 return err
57 }
58
59 return respond(w, http.StatusOK, envelope{Data: s})
60}
61
62// DELETE /api/sites/{id}
63func (api *API) DeleteSiteHandler(w http.ResponseWriter, r *http.Request) error {

Callers

nothing calls this directly

Calls 4

generateTrackingIDFunction · 0.85
respondFunction · 0.85
GetSiteMethod · 0.65
SaveSiteMethod · 0.65

Tested by

no test coverage detected