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(), } }