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),
|
||||
}))
|
||||
|
||||
v1 := api.Group("/v1")
|
||||
apiHandler := NewHandler(db)
|
||||
|
||||
v1.Get("/users", FetchAllUsersHandler)
|
||||
v1 := api.Group("/v1")
|
||||
v1.Post("/users", apiHandler.createUser)
|
||||
|
||||
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