121 lines
3.0 KiB
Go
121 lines
3.0 KiB
Go
package presenter
|
|
|
|
import (
|
|
"wish-list-api/pkg/entities"
|
|
|
|
"time"
|
|
|
|
"github.com/gofiber/fiber/v2"
|
|
"go.mongodb.org/mongo-driver/bson/primitive"
|
|
)
|
|
|
|
type WishList struct {
|
|
ID primitive.ObjectID `json:"id" bson:"_id,omitempty"`
|
|
Title string `json:"title"`
|
|
UserID string `json:"user_id"`
|
|
Description string `json:"description"`
|
|
IsPublic bool `json:"is_public"`
|
|
PhotoURL string `json:"photo_url"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
type WishListItem struct {
|
|
ID primitive.ObjectID `json:"id" bson:"_id,omitempty"`
|
|
Title string `json:"title"`
|
|
URL string `json:"url"`
|
|
Cost float64 `json:"cost"`
|
|
WishListID string `json:"wish_list_id"`
|
|
Description string `json:"description"`
|
|
PhotoURL string `json:"photo_url"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
type WishListResponse struct {
|
|
Status bool `json:"status"`
|
|
Data WishList `json:"data"`
|
|
Error *string `json:"error"`
|
|
}
|
|
|
|
type WishListsResponse struct {
|
|
Status bool `json:"status"`
|
|
Data []WishList `json:"data"`
|
|
Error *string `json:"error"`
|
|
}
|
|
|
|
type WishListItemResponse struct {
|
|
Status bool `json:"status"`
|
|
Data WishListItem `json:"data"`
|
|
Error *string `json:"error"`
|
|
}
|
|
|
|
type WishListItemsResponse struct {
|
|
Status bool `json:"status"`
|
|
Data []WishListItem `json:"data"`
|
|
Error *string `json:"error"`
|
|
}
|
|
|
|
func WishListSuccessResponse(data *entities.WishList) *fiber.Map {
|
|
id, _ := primitive.ObjectIDFromHex(data.ID)
|
|
wishList := WishList{
|
|
ID: id,
|
|
Title: data.Title,
|
|
UserID: data.UserID,
|
|
Description: data.Description,
|
|
IsPublic: data.IsPublic,
|
|
PhotoURL: data.PhotoURL,
|
|
CreatedAt: data.CreatedAt,
|
|
UpdatedAt: data.UpdatedAt,
|
|
}
|
|
return &fiber.Map{
|
|
"status": true,
|
|
"data": wishList,
|
|
"error": nil,
|
|
}
|
|
}
|
|
|
|
func WishListsSuccessResponse(data *[]WishList) *fiber.Map {
|
|
return &fiber.Map{
|
|
"status": true,
|
|
"data": data,
|
|
"error": nil,
|
|
}
|
|
}
|
|
|
|
func WishListItemSuccessResponse(data *entities.WishListItem) *fiber.Map {
|
|
id, _ := primitive.ObjectIDFromHex(data.ID)
|
|
wishListItem := WishListItem{
|
|
ID: id,
|
|
Title: data.Title,
|
|
URL: data.URL,
|
|
Cost: data.Cost,
|
|
WishListID: data.WishListID,
|
|
Description: data.Description,
|
|
PhotoURL: data.PhotoURL,
|
|
CreatedAt: data.CreatedAt,
|
|
UpdatedAt: data.UpdatedAt,
|
|
}
|
|
return &fiber.Map{
|
|
"status": true,
|
|
"data": wishListItem,
|
|
"error": nil,
|
|
}
|
|
}
|
|
|
|
func WishListItemsSuccessResponse(data *[]WishListItem) *fiber.Map {
|
|
return &fiber.Map{
|
|
"status": true,
|
|
"data": data,
|
|
"error": nil,
|
|
}
|
|
}
|
|
|
|
func WishListErrorResponse(err error) *fiber.Map {
|
|
return &fiber.Map{
|
|
"status": false,
|
|
"data": "",
|
|
"error": err.Error(),
|
|
}
|
|
}
|