mirror of
https://gitlab.com/mbugroup/lti-api.git
synced 2026-05-25 07:45:44 +00:00
fix: add order_by and sort_by query to master data employee
This commit is contained in:
@@ -27,6 +27,8 @@ func (u *EmployeesController) GetAll(c *fiber.Ctx) error {
|
|||||||
Page: c.QueryInt("page", 1),
|
Page: c.QueryInt("page", 1),
|
||||||
Limit: c.QueryInt("limit", 10),
|
Limit: c.QueryInt("limit", 10),
|
||||||
Search: c.Query("search", ""),
|
Search: c.Query("search", ""),
|
||||||
|
OrderBy: c.Query("order_by", "desc"),
|
||||||
|
SortBy: c.Query("sort_by", "updated_at"),
|
||||||
}
|
}
|
||||||
|
|
||||||
if query.Page < 1 || query.Limit < 1 {
|
if query.Page < 1 || query.Limit < 1 {
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package service
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
entity "gitlab.com/mbugroup/lti-api.git/internal/entities"
|
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 {
|
if params.IsActive != nil {
|
||||||
db = db.Where("employees.is_active = ?", *params.IsActive)
|
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").
|
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").
|
Group("employees.id, employees.name, employees.is_active, employees.created_at, employees.updated_at")
|
||||||
Order("employees.created_at DESC").
|
|
||||||
Order("employees.updated_at DESC")
|
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 {
|
if err != nil {
|
||||||
|
|||||||
@@ -18,4 +18,6 @@ type Query struct {
|
|||||||
Search string `query:"search" validate:"omitempty,max=50"`
|
Search string `query:"search" validate:"omitempty,max=50"`
|
||||||
KandangId *uint `query:"kandang_id" validate:"omitempty"`
|
KandangId *uint `query:"kandang_id" validate:"omitempty"`
|
||||||
IsActive *bool `query:"is_active" 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