60 lines
1.1 KiB
Go
60 lines
1.1 KiB
Go
package presenter
|
|
|
|
import (
|
|
"wish-list-api/pkg/entities"
|
|
|
|
"time"
|
|
|
|
"github.com/gofiber/fiber/v2"
|
|
"go.mongodb.org/mongo-driver/bson/primitive"
|
|
)
|
|
|
|
type User struct {
|
|
ID primitive.ObjectID `json:"id" bson:"_id,omitempty"`
|
|
Email string `json:"email"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
type UserResponse struct {
|
|
Status bool `json:"status"`
|
|
Data User `json:"data"`
|
|
Error *string `json:"error"`
|
|
}
|
|
|
|
type UsersResponse struct {
|
|
Status bool `json:"status"`
|
|
Data []User `json:"data"`
|
|
Error *string `json:"error"`
|
|
}
|
|
|
|
func UserSuccessResponse(data *entities.User) *fiber.Map {
|
|
user := User{
|
|
ID: data.ID,
|
|
Email: data.Email,
|
|
CreatedAt: data.CreatedAt,
|
|
UpdatedAt: data.UpdatedAt,
|
|
}
|
|
return &fiber.Map{
|
|
"status": true,
|
|
"data": user,
|
|
"error": nil,
|
|
}
|
|
}
|
|
|
|
func UsersSuccessResponse(data *[]User) *fiber.Map {
|
|
return &fiber.Map{
|
|
"status": true,
|
|
"data": data,
|
|
"error": nil,
|
|
}
|
|
}
|
|
|
|
func UserErrorResponse(err error) *fiber.Map {
|
|
return &fiber.Map{
|
|
"status": false,
|
|
"data": "",
|
|
"error": err.Error(),
|
|
}
|
|
}
|