// // POST /library/labels // func addLabel(c *echo.Context) error { name := strings.TrimPrefix(form(c, "name"), "label/") if name == "" { return c.String(400, "Name too short") } label := Label{ Name: name, Content: form(c, "content"), Expanded: form(c, "expanded") == "true", } user := c.Get("user").(*User) err := store.SaveLabel(&label, user.ID) if err == ErrLabelExists { return c.String(409, "Existing label") } else if err != nil { return err } return c.JSON(200, addedLabel{ ID: label.ID, Name: label.Name, }) }
// // 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 }
// // 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 }
// // POST /library/casts // func addCast(c *echo.Context) error { user := c.Get("user").(*User) url := form(c, "feedurl") cast := store.GetCastByURL(url) if cast == nil { cast = <-crawl.fetch(url) if cast == nil { return c.String(500, "Could not fetch feed") } } user, err := store.AddSubscription(user.ID, cast.ID) if err != nil && err != ErrSubscriptionExists { return err } authCache.set(c.Get("token").(string), user) return c.JSON(200, cast) }
// // 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) }
// Handler func hello(c *echo.Context) error { return c.String(http.StatusOK, "Hello, World!\n") }