// // GET /library/episode/:id // func getEpisode(c *echo.Context) error { id, err := strconv.ParseUint(c.Param("id"), 10, 64) if err != nil { return c.NoContent(400) } return c.JSON(200, store.GetEpisode(id)) }
// // DELETE /library/labels/:id // func removeLabel(c *echo.Context) error { id, err := strconv.ParseUint(c.Param("id"), 10, 64) if err != nil { return c.NoContent(400) } user := c.Get("user").(*User) return store.RemoveLabel(id, user.ID) }
// // DELETE /library/casts/:id // func removeCast(c *echo.Context) error { id, err := strconv.ParseUint(c.Param("id"), 10, 64) if err != nil { return c.NoContent(400) } user := c.Get("user").(*User) user, err = store.RemoveSubscription(user.ID, id) authCache.set(c.Get("token").(string), user) return err }
// // DELETE /account/settings/:id // func removeSetting(c *echo.Context) error { id, err := strconv.ParseUint(c.Param("id"), 10, 64) if err != nil { return c.NoContent(400) } user := c.Get("user").(*User) err = store.RemoveSetting(id, user.ID) if err == ErrSettingNotFound { return c.String(404, "Setting not found") } return err }
// // POST /account/settings // func setSettings(c *echo.Context) error { data := form(c, "json") if data == "" { return c.NoContent(400) } settings := []Setting{} err := json.Unmarshal([]byte(data), &settings) if err != nil { return c.NoContent(400) } user := c.Get("user").(*User) uuid := c.Get("uuid").(string) return store.SaveSettings(settings, user.ID, uuid) }
// // POST /library/events // func addEvents(c *echo.Context) error { data := form(c, "json") if data == "" { return c.NoContent(400) } events := []Event{} err := json.Unmarshal([]byte(data), &events) if err != nil { return c.NoContent(400) } user := c.Get("user").(*User) uuid := c.Get("uuid").(string) return store.AddEvents(events, user.ID, uuid) }
// // PUT /library/casts/:id // func renameCast(c *echo.Context) error { id, err := strconv.ParseUint(c.Param("id"), 10, 64) if err != nil { return c.NoContent(400) } cast := store.GetCast(id) if cast == nil { return c.String(404, "Cast not found") } prev := cast.Name cast.Name = form(c, "name") if cast.Name != prev { return store.SaveCast(cast) } return nil }
// // GET /library/newepisodes // func getNewEpisodes(c *echo.Context) error { now := time.Now().Unix() user := c.Get("user").(*User) since := c.Request().URL.Query().Get("since") if since == "" { return c.JSON(200, newEpisodes{ Timestamp: now, Episodes: store.GetEpisodesSince(0, user.Subscriptions), }) } ts, err := strconv.ParseInt(since, 10, 64) if err != nil { return c.NoContent(400) } return c.JSON(200, newEpisodes{ Timestamp: now, Episodes: store.GetEpisodesSince(ts, user.Subscriptions), }) }
// // PUT /library/labels/:id // func updateLabel(c *echo.Context) error { id, err := strconv.ParseUint(c.Param("id"), 10, 64) if err != nil { return c.NoContent(400) } label := store.GetLabel(id) if label == nil { return c.String(404, "Label not found") } if name := form(c, "name"); name != "" { label.Name = name } if content := form(c, "content"); content != "" { label.Content = content } if expanded := form(c, "expanded"); expanded != "" { label.Expanded = expanded == "true" } user := c.Get("user").(*User) return store.SaveLabel(label, user.ID) }
// // GET /library/events // func getEvents(c *echo.Context) error { now := time.Now().Unix() var err error var ts uint64 since := c.Request().URL.Query().Get("since") if since != "" { ts, err = strconv.ParseUint(since, 10, 64) if err != nil { return c.NoContent(400) } } user := c.Get("user").(*User) uuid := "" excludeSelf := c.Request().URL.Query().Get("exclude_self") if excludeSelf == "true" { uuid = c.Get("uuid").(string) } return c.JSON(200, events{ Timestamp: now, Events: store.GetEvents(user.ID, ts, uuid), }) }
func deleteUser(c *echo.Context) error { id, _ := strconv.Atoi(c.Param("id")) delete(users, id) return c.NoContent(http.StatusNoContent) }