76 lines
1.5 KiB
Go
76 lines
1.5 KiB
Go
package endpoints
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"relynolli-server/models"
|
|
"relynolli-server/status"
|
|
"relynolli-server/storage"
|
|
"time"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
type getCartItemsRequest struct {
|
|
FuserId int64 `form:"fuserId"`
|
|
}
|
|
|
|
func (h *handlers) GetCartItems(c *gin.Context) {
|
|
ctx := context.Background()
|
|
query := new(getCartItemsRequest)
|
|
meta := models.Meta{
|
|
RequestStarted: time.Now().Unix(),
|
|
}
|
|
|
|
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})
|
|
return
|
|
}
|
|
|
|
s := storage.NewStorageCart()
|
|
|
|
items, _ := s.GetCartItems(ctx, query.FuserId)
|
|
|
|
meta.RequestFinished = time.Now().Unix()
|
|
c.JSON(200, models.Response{
|
|
Status: status.STATUS_OK,
|
|
Data: &items,
|
|
Meta: &meta,
|
|
})
|
|
}
|
|
|
|
func (h *handlers) CreateFUser(c *gin.Context) {
|
|
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
|
|
}
|
|
|
|
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,
|
|
})
|
|
}
|