mirror of
https://gitlab.com/mbugroup/lti-api.git
synced 2026-05-20 21:41:55 +00:00
fix: add order_by and sort_by query to master data employee
This commit is contained in:
@@ -24,9 +24,11 @@ func NewEmployeesController(employeesService service.EmployeesService) *Employee
|
||||
|
||||
func (u *EmployeesController) GetAll(c *fiber.Ctx) error {
|
||||
query := &validation.Query{
|
||||
Page: c.QueryInt("page", 1),
|
||||
Limit: c.QueryInt("limit", 10),
|
||||
Search: c.Query("search", ""),
|
||||
Page: c.QueryInt("page", 1),
|
||||
Limit: c.QueryInt("limit", 10),
|
||||
Search: c.Query("search", ""),
|
||||
OrderBy: c.Query("order_by", "desc"),
|
||||
SortBy: c.Query("sort_by", "updated_at"),
|
||||
}
|
||||
|
||||
if query.Page < 1 || query.Limit < 1 {
|
||||
|
||||
@@ -2,6 +2,7 @@ package service
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
entity "gitlab.com/mbugroup/lti-api.git/internal/entities"
|
||||
@@ -126,11 +127,18 @@ func (s employeesService) GetAll(c *fiber.Ctx, params *validation.Query) ([]enti
|
||||
if params.IsActive != nil {
|
||||
db = db.Where("employees.is_active = ?", *params.IsActive)
|
||||
}
|
||||
return db.
|
||||
|
||||
db = db.
|
||||
Select("employees.id, employees.name, employees.is_active, employees.created_at, employees.updated_at").
|
||||
Group("employees.id, employees.name, employees.is_active, employees.created_at, employees.updated_at").
|
||||
Order("employees.created_at DESC").
|
||||
Order("employees.updated_at DESC")
|
||||
Group("employees.id, employees.name, employees.is_active, employees.created_at, employees.updated_at")
|
||||
|
||||
if params.OrderBy == "desc" || params.OrderBy == "" {
|
||||
db = db.Order(fmt.Sprintf("employees.%s DESC", params.SortBy))
|
||||
} else {
|
||||
db = db.Order(fmt.Sprintf("employees.%s ASC", params.SortBy))
|
||||
}
|
||||
|
||||
return db
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
|
||||
@@ -18,4 +18,6 @@ type Query struct {
|
||||
Search string `query:"search" validate:"omitempty,max=50"`
|
||||
KandangId *uint `query:"kandang_id" validate:"omitempty"`
|
||||
IsActive *bool `query:"is_active" validate:"omitempty"`
|
||||
SortBy string `query:"sort_by" validate:"omitempty,max=50,oneof=name created_at updated_at" default:"updated_at"`
|
||||
OrderBy string `query:"order_by" validate:"omitempty,oneof=asc desc" default:"desc"`
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user