mirror of
https://gitlab.com/mbugroup/lti-api.git
synced 2026-05-20 13:31:56 +00:00
FIX(BE): category dto do not show
This commit is contained in:
@@ -16,13 +16,8 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type ProjectFlockBaseDTO struct {
|
type ProjectFlockBaseDTO struct {
|
||||||
Id uint `json:"id"`
|
Id uint `json:"id"`
|
||||||
Period int `json:"period"`
|
Period int `json:"period"`
|
||||||
Category string `json:"category"`
|
|
||||||
Flock *flockDTO.FlockBaseDTO `json:"flock"`
|
|
||||||
Area *areaDTO.AreaBaseDTO `json:"area"`
|
|
||||||
Fcr *fcrDTO.FcrBaseDTO `json:"fcr"`
|
|
||||||
Location *locationDTO.LocationBaseDTO `json:"location"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type ProjectFlockListDTO struct {
|
type ProjectFlockListDTO struct {
|
||||||
@@ -72,6 +67,7 @@ func ToProjectFlockListDTO(e entity.ProjectFlock) ProjectFlockListDTO {
|
|||||||
return ProjectFlockListDTO{
|
return ProjectFlockListDTO{
|
||||||
ProjectFlockBaseDTO: createProjectFlockBaseDTO(e),
|
ProjectFlockBaseDTO: createProjectFlockBaseDTO(e),
|
||||||
Kandangs: kandangSummaries,
|
Kandangs: kandangSummaries,
|
||||||
|
Category: e.Category,
|
||||||
CreatedAt: e.CreatedAt,
|
CreatedAt: e.CreatedAt,
|
||||||
UpdatedAt: e.UpdatedAt,
|
UpdatedAt: e.UpdatedAt,
|
||||||
CreatedUser: createdUser,
|
CreatedUser: createdUser,
|
||||||
@@ -126,38 +122,9 @@ func defaultProjectFlockLatestApproval(e entity.ProjectFlock) approvalDTO.Approv
|
|||||||
}
|
}
|
||||||
|
|
||||||
func createProjectFlockBaseDTO(e entity.ProjectFlock) ProjectFlockBaseDTO {
|
func createProjectFlockBaseDTO(e entity.ProjectFlock) ProjectFlockBaseDTO {
|
||||||
var flock *flockDTO.FlockBaseDTO
|
|
||||||
if e.Flock.Id != 0 {
|
|
||||||
mapped := flockDTO.ToFlockBaseDTO(e.Flock)
|
|
||||||
flock = &mapped
|
|
||||||
}
|
|
||||||
|
|
||||||
var area *areaDTO.AreaBaseDTO
|
|
||||||
if e.Area.Id != 0 {
|
|
||||||
mapped := areaDTO.ToAreaBaseDTO(e.Area)
|
|
||||||
area = &mapped
|
|
||||||
}
|
|
||||||
|
|
||||||
var fcr *fcrDTO.FcrBaseDTO
|
|
||||||
if e.Fcr.Id != 0 {
|
|
||||||
mapped := fcrDTO.ToFcrBaseDTO(e.Fcr)
|
|
||||||
fcr = &mapped
|
|
||||||
}
|
|
||||||
|
|
||||||
var location *locationDTO.LocationBaseDTO
|
|
||||||
if e.Location.Id != 0 {
|
|
||||||
mapped := locationDTO.ToLocationBaseDTO(e.Location)
|
|
||||||
location = &mapped
|
|
||||||
}
|
|
||||||
|
|
||||||
return ProjectFlockBaseDTO{
|
return ProjectFlockBaseDTO{
|
||||||
Id: e.Id,
|
Id: e.Id,
|
||||||
Period: e.Period,
|
Period: e.Period,
|
||||||
Category: e.Category,
|
|
||||||
Flock: flock,
|
|
||||||
Area: area,
|
|
||||||
Fcr: fcr,
|
|
||||||
Location: location,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -219,8 +219,8 @@ func (s *projectflockService) CreateOne(c *fiber.Ctx, req *validation.Create) (*
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
category, ok := utils.NormalizeProjectFlockCategory(req.Category)
|
cat := strings.ToUpper(req.Category)
|
||||||
if !ok {
|
if !utils.IsValidProjectFlockCategory(cat) {
|
||||||
return nil, fiber.NewError(fiber.StatusBadRequest, "Invalid category")
|
return nil, fiber.NewError(fiber.StatusBadRequest, "Invalid category")
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -257,7 +257,7 @@ func (s *projectflockService) CreateOne(c *fiber.Ctx, req *validation.Create) (*
|
|||||||
createBody := &entity.ProjectFlock{
|
createBody := &entity.ProjectFlock{
|
||||||
FlockId: req.FlockId,
|
FlockId: req.FlockId,
|
||||||
AreaId: req.AreaId,
|
AreaId: req.AreaId,
|
||||||
Category: string(category),
|
Category: cat,
|
||||||
FcrId: req.FcrId,
|
FcrId: req.FcrId,
|
||||||
LocationId: req.LocationId,
|
LocationId: req.LocationId,
|
||||||
CreatedBy: 1,
|
CreatedBy: 1,
|
||||||
@@ -342,11 +342,12 @@ func (s projectflockService) UpdateOne(c *fiber.Ctx, req *validation.Update, id
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
if req.Category != nil {
|
if req.Category != nil {
|
||||||
if normalized, ok := utils.NormalizeProjectFlockCategory(*req.Category); ok {
|
cat := strings.ToUpper(*req.Category)
|
||||||
updateBody["category"] = string(normalized)
|
if !utils.IsValidProjectFlockCategory(cat) {
|
||||||
} else {
|
|
||||||
return nil, fiber.NewError(fiber.StatusBadRequest, "Invalid category")
|
return nil, fiber.NewError(fiber.StatusBadRequest, "Invalid category")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
updateBody["category"] = cat
|
||||||
}
|
}
|
||||||
if req.FcrId != nil {
|
if req.FcrId != nil {
|
||||||
updateBody["fcr_id"] = *req.FcrId
|
updateBody["fcr_id"] = *req.FcrId
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package validation
|
|||||||
type Create struct {
|
type Create struct {
|
||||||
FlockId uint `json:"flock_id" validate:"required_strict,number,gt=0"`
|
FlockId uint `json:"flock_id" validate:"required_strict,number,gt=0"`
|
||||||
AreaId uint `json:"area_id" validate:"required_strict,number,gt=0"`
|
AreaId uint `json:"area_id" validate:"required_strict,number,gt=0"`
|
||||||
Category string `json:"category" validate:"required_strict,oneof=growing laying GROWING LAYING"`
|
Category string `json:"category" validate:"required_strict"`
|
||||||
FcrId uint `json:"fcr_id" validate:"required_strict,number,gt=0"`
|
FcrId uint `json:"fcr_id" validate:"required_strict,number,gt=0"`
|
||||||
LocationId uint `json:"location_id" validate:"required_strict,number,gt=0"`
|
LocationId uint `json:"location_id" validate:"required_strict,number,gt=0"`
|
||||||
KandangIds []uint `json:"kandang_ids" validate:"required,min=1,dive,gt=0"`
|
KandangIds []uint `json:"kandang_ids" validate:"required,min=1,dive,gt=0"`
|
||||||
@@ -12,7 +12,7 @@ type Create struct {
|
|||||||
type Update struct {
|
type Update struct {
|
||||||
FlockId *uint `json:"flock_id,omitempty" validate:"omitempty,number,gt=0"`
|
FlockId *uint `json:"flock_id,omitempty" validate:"omitempty,number,gt=0"`
|
||||||
AreaId *uint `json:"area_id,omitempty" validate:"omitempty,number,gt=0"`
|
AreaId *uint `json:"area_id,omitempty" validate:"omitempty,number,gt=0"`
|
||||||
Category *string `json:"category,omitempty" validate:"omitempty,oneof=growing laying GROWING LAYING"`
|
Category *string `json:"category,omitempty" validate:"omitempty"`
|
||||||
FcrId *uint `json:"fcr_id,omitempty" validate:"omitempty,number,gt=0"`
|
FcrId *uint `json:"fcr_id,omitempty" validate:"omitempty,number,gt=0"`
|
||||||
LocationId *uint `json:"location_id,omitempty" validate:"omitempty,number,gt=0"`
|
LocationId *uint `json:"location_id,omitempty" validate:"omitempty,number,gt=0"`
|
||||||
KandangIds []uint `json:"kandang_ids,omitempty" validate:"omitempty,min=1,dive,gt=0"`
|
KandangIds []uint `json:"kandang_ids,omitempty" validate:"omitempty,min=1,dive,gt=0"`
|
||||||
@@ -22,7 +22,7 @@ type Query struct {
|
|||||||
Page int `query:"page" validate:"omitempty,number,min=1"`
|
Page int `query:"page" validate:"omitempty,number,min=1"`
|
||||||
Limit int `query:"limit" validate:"omitempty,number,min=1,max=100"`
|
Limit int `query:"limit" validate:"omitempty,number,min=1,max=100"`
|
||||||
Search string `query:"search" validate:"omitempty,max=50"`
|
Search string `query:"search" validate:"omitempty,max=50"`
|
||||||
SortBy string `query:"sort_by" validate:"omitempty,oneof=area location kandangs period"`
|
SortBy string `query:"sort_by" validate:"omitempty"`
|
||||||
SortOrder string `query:"sort_order" validate:"omitempty,oneof=asc desc"`
|
SortOrder string `query:"sort_order" validate:"omitempty,oneof=asc desc"`
|
||||||
AreaId uint `query:"area_id" validate:"omitempty,number,gt=0"`
|
AreaId uint `query:"area_id" validate:"omitempty,number,gt=0"`
|
||||||
LocationId uint `query:"location_id" validate:"omitempty,number,gt=0"`
|
LocationId uint `query:"location_id" validate:"omitempty,number,gt=0"`
|
||||||
|
|||||||
@@ -250,19 +250,12 @@ func IsValidCustomerSupplierType(v string) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
func NormalizeProjectFlockCategory(v string) (ProjectFlockCategory, bool) {
|
|
||||||
normalized := ProjectFlockCategory(strings.ToUpper(strings.TrimSpace(v)))
|
|
||||||
switch normalized {
|
|
||||||
case ProjectFlockCategoryGrowing, ProjectFlockCategoryLaying:
|
|
||||||
return normalized, true
|
|
||||||
default:
|
|
||||||
return "", false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsValidProjectFlockCategory(v string) bool {
|
func IsValidProjectFlockCategory(v string) bool {
|
||||||
_, ok := NormalizeProjectFlockCategory(v)
|
switch ProjectFlockCategory(v) {
|
||||||
return ok
|
case ProjectFlockCategoryGrowing, ProjectFlockCategoryLaying:
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
func IsValidSupplierCategory(v string) bool {
|
func IsValidSupplierCategory(v string) bool {
|
||||||
|
|||||||
Reference in New Issue
Block a user