wishli-api/api/presenter/user.go
2025-03-23 20:05:51 +03:00

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