relynolli-server/handlers/cart/endpoints/cart.go

76 lines
1.5 KiB
Go
Raw Normal View History

2024-03-15 21:27:45 +03:00
package endpoints
import (
2024-03-26 02:21:35 +03:00
"context"
"fmt"
2024-03-15 21:27:45 +03:00
"relynolli-server/models"
2024-03-26 02:21:35 +03:00
"relynolli-server/status"
"relynolli-server/storage"
"time"
2024-03-23 23:25:54 +03:00
"github.com/gin-gonic/gin"
2024-03-15 21:27:45 +03:00
)
2024-03-26 02:21:35 +03:00
type getCartItemsRequest struct {
FuserId int64 `form:"fuserId"`
}
2024-03-15 21:27:45 +03:00
func (h *handlers) GetCartItems(c *gin.Context) {
2024-03-26 02:21:35 +03:00
ctx := context.Background()
query := new(getCartItemsRequest)
meta := models.Meta{
RequestStarted: time.Now().Unix(),
}
2024-03-15 21:27:45 +03:00
2024-03-26 02:21:35 +03:00
err := c.ShouldBindQuery(query)
if err != nil || query.FuserId == 0 {
meta.RequestFinished = time.Now().Unix()
c.JSON(400, models.Response{
Status: status.STATUS_BAD_REQUEST,
Info: "\"fuserId\" should be provided and be integer number",
Meta: &meta})
2024-03-15 21:27:45 +03:00
return
}
2024-03-26 02:21:35 +03:00
s := storage.NewStorageCart()
2024-03-15 21:27:45 +03:00
2024-03-26 02:21:35 +03:00
items, _ := s.GetCartItems(ctx, query.FuserId)
2024-03-15 21:27:45 +03:00
2024-03-26 02:21:35 +03:00
meta.RequestFinished = time.Now().Unix()
c.JSON(200, models.Response{
Status: status.STATUS_OK,
Data: &items,
Meta: &meta,
})
2024-03-15 21:27:45 +03:00
}
func (h *handlers) CreateFUser(c *gin.Context) {
2024-03-26 02:21:35 +03:00
s := storage.NewStorageCart()
ctx := context.Background()
meta := models.Meta{
RequestStarted: time.Now().Unix(),
}
fuserId, fuser, err := s.CreateFuser(ctx)
if err != nil {
meta.RequestFinished = time.Now().Unix()
c.JSON(500, models.Response{
Status: status.STATUS_SERVER_ERROR,
Info: fmt.Sprintf("Error: %s", err.Error()),
Meta: &meta,
})
return
}
2024-03-15 21:27:45 +03:00
2024-03-26 02:21:35 +03:00
meta.RequestFinished = time.Now().Unix()
c.JSON(201, models.Response{
Status: status.STATUS_OK,
Info: "New Fuser has created",
Data: &gin.H{
"fuserId": fuserId,
"fuser": &fuser,
},
Meta: &meta,
2024-03-15 21:27:45 +03:00
})
}