Adds handler structs and user handler
This commit is contained in:
parent
832b91a9b5
commit
9fda114cd3
4 changed files with 46 additions and 11 deletions
|
|
@ -24,9 +24,10 @@ func Setup(app *fiber.App, db *sql.DB) error {
|
||||||
Validator: apiKeyValidator(apiKey),
|
Validator: apiKeyValidator(apiKey),
|
||||||
}))
|
}))
|
||||||
|
|
||||||
v1 := api.Group("/v1")
|
apiHandler := NewHandler(db)
|
||||||
|
|
||||||
v1.Get("/users", FetchAllUsersHandler)
|
v1 := api.Group("/v1")
|
||||||
|
v1.Post("/users", apiHandler.createUser)
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
||||||
13
internal/api/handler.go
Normal file
13
internal/api/handler.go
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
package api
|
||||||
|
|
||||||
|
import (
|
||||||
|
"database/sql"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Handler struct {
|
||||||
|
db *sql.DB
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewHandler(db *sql.DB) *Handler {
|
||||||
|
return &Handler{db: db}
|
||||||
|
}
|
||||||
30
internal/api/user.go
Normal file
30
internal/api/user.go
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
package api
|
||||||
|
|
||||||
|
import (
|
||||||
|
"freed/internal/model"
|
||||||
|
|
||||||
|
"github.com/gofiber/fiber/v2"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (h *Handler) createUser(c *fiber.Ctx) error {
|
||||||
|
user := new(model.User)
|
||||||
|
|
||||||
|
if err := c.BodyParser(user); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
result, err := h.db.Exec("INSERT INTO user (first_name, email) VALUES (?, ?)", user.FirstName, user.Email)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
id, err := result.LastInsertId()
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
c.SendStatus(201)
|
||||||
|
return c.JSON(&fiber.Map{"userId": id})
|
||||||
|
}
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
package api
|
|
||||||
|
|
||||||
import (
|
|
||||||
"github.com/gofiber/fiber/v2"
|
|
||||||
)
|
|
||||||
|
|
||||||
func FetchAllUsersHandler(ctx *fiber.Ctx) error {
|
|
||||||
return ctx.JSON(&fiber.Map{"users": "none"})
|
|
||||||
}
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue