adjust api get all employees

This commit is contained in:
MacBook Air M1
2026-01-05 17:32:41 +07:00
parent df504e3ff0
commit 80109b77db
3 changed files with 36 additions and 10 deletions
@@ -41,10 +41,10 @@ func NewEmployeesService(repo repository.EmployeesRepository, validate *validato
func (s employeesService) withRelations(db *gorm.DB) *gorm.DB {
return db.
Preload("EmployeeKandangs.Kandang").
Preload("EmployeeKandangs.Kandang.Location").
Preload("EmployeeKandangs.Kandang.Pic").
Preload("EmployeeKandangs.Kandang.CreatedUser")
Preload("EmployeeKandangs.Kandang")
// Preload("EmployeeKandangs.Kandang.Location").
// Preload("EmployeeKandangs.Kandang.Pic").
// Preload("EmployeeKandangs.Kandang.CreatedUser")
}
func (s employeesService) GetAll(c *fiber.Ctx, params *validation.Query) ([]entity.Employees, int64, error) {
@@ -57,9 +57,16 @@ func (s employeesService) GetAll(c *fiber.Ctx, params *validation.Query) ([]enti
employeess, total, err := s.Repository.GetAll(c.Context(), offset, params.Limit, func(db *gorm.DB) *gorm.DB {
db = s.withRelations(db)
if params.Search != "" {
return db.Where("name LIKE ?", "%"+params.Search+"%")
db = db.Where("employees.name LIKE ?", "%"+params.Search+"%")
}
return db.Order("created_at DESC").Order("updated_at DESC")
if params.KandangId != nil {
db = db.Joins("JOIN employee_kandangs ek ON ek.employee_id = employees.id").
Where("ek.kandang_id = ?", *params.KandangId)
}
if params.IsActive != nil {
db = db.Where("employees.is_active = ?", *params.IsActive)
}
return db.Order("employees.created_at DESC").Order("employees.updated_at DESC")
})
if err != nil {