Example of how to extend the API
This commit is contained in:
parent
56693350be
commit
70ae359856
2 changed files with 38 additions and 3 deletions
|
@ -35,6 +35,7 @@ func main() {
|
||||||
|
|
||||||
// Register our handlers
|
// Register our handlers
|
||||||
server.Post("/api/register", gs.Register)
|
server.Post("/api/register", gs.Register)
|
||||||
|
server.Delete("/api/userdelete", gs.UserDelete) // Perhaps just use POST to avoid headaches
|
||||||
|
|
||||||
// Register handlers for example button count
|
// Register handlers for example button count
|
||||||
server.Get("/api/button", gs.GetButtonCount)
|
server.Get("/api/button", gs.GetButtonCount)
|
||||||
|
|
|
@ -9,9 +9,28 @@ import (
|
||||||
|
|
||||||
// The actual interface that we will use
|
// The actual interface that we will use
|
||||||
type GlobalState interface {
|
type GlobalState interface {
|
||||||
Register(c *fiber.Ctx) error
|
Register(c *fiber.Ctx) error // To register a new user
|
||||||
GetButtonCount(c *fiber.Ctx) error
|
UserDelete(c *fiber.Ctx) error // To delete a user
|
||||||
IncrementButtonCount(c *fiber.Ctx) error
|
// LoginPost(c *fiber.Ctx) error // To get the token
|
||||||
|
// LoginUpdate(c *fiber.Ctx) error // To renew the token
|
||||||
|
// CreateProject(c *fiber.Ctx) error // To create a new project
|
||||||
|
// GetProjects(c *fiber.Ctx) error // To get all projects
|
||||||
|
// GetProject(c *fiber.Ctx) error // To get a specific project
|
||||||
|
// UpdateProject(c *fiber.Ctx) error // To update a project
|
||||||
|
// DeleteProject(c *fiber.Ctx) error // To delete a project
|
||||||
|
// CreateTask(c *fiber.Ctx) error // To create a new task
|
||||||
|
// GetTasks(c *fiber.Ctx) error // To get all tasks
|
||||||
|
// GetTask(c *fiber.Ctx) error // To get a specific task
|
||||||
|
// UpdateTask(c *fiber.Ctx) error // To update a task
|
||||||
|
// DeleteTask(c *fiber.Ctx) error // To delete a task
|
||||||
|
// CreateCollection(c *fiber.Ctx) error // To create a new collection
|
||||||
|
// GetCollections(c *fiber.Ctx) error // To get all collections
|
||||||
|
// GetCollection(c *fiber.Ctx) error // To get a specific collection
|
||||||
|
// UpdateCollection(c *fiber.Ctx) error // To update a collection
|
||||||
|
// DeleteCollection(c *fiber.Ctx) error // To delete a collection
|
||||||
|
// SignCollection(c *fiber.Ctx) error // To sign a collection
|
||||||
|
GetButtonCount(c *fiber.Ctx) error // For demonstration purposes
|
||||||
|
IncrementButtonCount(c *fiber.Ctx) error // For demonstration purposes
|
||||||
}
|
}
|
||||||
|
|
||||||
// "Constructor"
|
// "Constructor"
|
||||||
|
@ -38,6 +57,21 @@ func (gs *GState) Register(c *fiber.Ctx) error {
|
||||||
return c.Status(200).SendString("User added")
|
return c.Status(200).SendString("User added")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This path should obviously be protected in the future
|
||||||
|
// UserDelete deletes a user from the database
|
||||||
|
func (gs *GState) UserDelete(c *fiber.Ctx) error {
|
||||||
|
u := new(types.User)
|
||||||
|
if err := c.BodyParser(u); err != nil {
|
||||||
|
return c.Status(400).SendString(err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := gs.Db.RemoveUser(u.Username); err != nil {
|
||||||
|
return c.Status(500).SendString(err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
|
return c.Status(200).SendString("User deleted")
|
||||||
|
}
|
||||||
|
|
||||||
func (gs *GState) GetButtonCount(c *fiber.Ctx) error {
|
func (gs *GState) GetButtonCount(c *fiber.Ctx) error {
|
||||||
return c.Status(200).JSON(fiber.Map{"pressCount": gs.ButtonCount})
|
return c.Status(200).JSON(fiber.Map{"pressCount": gs.ButtonCount})
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue