fix (area): fix pagination area data source

This commit is contained in:
dpurbosakti
2025-10-08 11:41:53 +07:00
parent 2b0c5ac577
commit e9b262175d
15 changed files with 106 additions and 21 deletions

No files matched your search

@@ -12,10 +12,17 @@ type CreateDto struct {
} }
type ReadListDto struct { type ReadListDto struct {
FilterDto
Includes string `json:"includes"`
Preloads []string `json:"-"`
Search string `json:"search"`
Pagination ecore.Pagination
}
type FilterDto struct {
Regency_Code string `json:"regency-code"` Regency_Code string `json:"regency-code"`
Code string `json:"code"` Code string `json:"code"`
Name string `json:"name"` Name string `json:"name"`
Pagination ecore.Pagination
} }
type ReadDetailDto struct { type ReadDetailDto struct {
+15 -10
View File
@@ -2,6 +2,7 @@ package province
import ( import (
ecore "simrs-vx/internal/domain/base-entities/core" ecore "simrs-vx/internal/domain/base-entities/core"
er "simrs-vx/internal/domain/main-entities/regency"
) )
type CreateDto struct { type CreateDto struct {
@@ -10,11 +11,18 @@ type CreateDto struct {
} }
type ReadListDto struct { type ReadListDto struct {
Code string `json:"code"` FilterDto
Name string `json:"name"` Includes string `json:"includes"`
Preloads []string `json:"-"`
Search string `json:"search"`
Pagination ecore.Pagination Pagination ecore.Pagination
} }
type FilterDto struct {
Code string `json:"code"`
Name string `json:"name"`
}
type ReadDetailDto struct { type ReadDetailDto struct {
Id int16 `json:"id"` Id int16 `json:"id"`
Code *string `json:"code"` Code *string `json:"code"`
@@ -36,17 +44,14 @@ type MetaDto struct {
} }
type ResponseDto struct { type ResponseDto struct {
Id int16 `json:"id"` Id int16 `json:"id"`
Code string `json:"code"` Code string `json:"code"`
Name string `json:"name"` Name string `json:"name"`
Regencies []*er.Regency `json:"regencies,omitempty"`
} }
func (d Province) ToResponse() ResponseDto { func (d Province) ToResponse() ResponseDto {
resp := ResponseDto{ resp := ResponseDto(d)
Id: d.Id,
Code: d.Code,
Name: d.Name,
}
return resp return resp
} }
+8 -1
View File
@@ -12,10 +12,17 @@ type CreateDto struct {
} }
type ReadListDto struct { type ReadListDto struct {
FilterDto
Includes string `json:"includes"`
Preloads []string `json:"-"`
Search string `json:"search"`
Pagination ecore.Pagination
}
type FilterDto struct {
Province_Code string `json:"province-code"` Province_Code string `json:"province-code"`
Code string `json:"code"` Code string `json:"code"`
Name string `json:"name"` Name string `json:"name"`
Pagination ecore.Pagination
} }
type ReadDetailDto struct { type ReadDetailDto struct {
+9 -3
View File
@@ -10,12 +10,18 @@ type CreateDto struct {
} }
type ReadListDto struct { type ReadListDto struct {
Code string `json:"code"` FilterDto
Name string `json:"name"` Includes string `json:"includes"`
Search string `json:"search"` Preloads []string `json:"-"`
Search string `json:"search"`
Pagination ecore.Pagination Pagination ecore.Pagination
} }
type FilterDto struct {
Code string `json:"code"`
Name string `json:"name"`
}
type ReadDetailDto struct { type ReadDetailDto struct {
Id uint16 `json:"id"` Id uint16 `json:"id"`
Code *string `json:"code"` Code *string `json:"code"`
+8 -1
View File
@@ -11,10 +11,17 @@ type CreateDto struct {
} }
type ReadListDto struct { type ReadListDto struct {
FilterDto
Includes string `json:"includes"`
Preloads []string `json:"-"`
Search string `json:"search"`
Pagination ecore.Pagination
}
type FilterDto struct {
District_Code string `json:"district-code"` District_Code string `json:"district-code"`
Code string `json:"code"` Code string `json:"code"`
Name string `json:"name"` Name string `json:"name"`
Pagination ecore.Pagination
} }
type ReadDetailDto struct { type ReadDetailDto struct {
@@ -87,6 +87,9 @@ func ReadList(input e.ReadListDto) (*d.Data, error) {
return err return err
} }
if len(input.Includes) > 0 {
input.Preloads = pu.GetPreloads(input.Includes)
}
if dataList, metaList, err = ReadListData(input, &event, tx); err != nil { if dataList, metaList, err = ReadListData(input, &event, tx); err != nil {
return err return err
} }
@@ -47,9 +47,17 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.Di
tx = dg.I tx = dg.I
} }
if len(input.Preloads) > 0 {
for _, preload := range input.Preloads {
tx = tx.Preload(preload)
}
}
plh.SearchCodeOrName(input.Search, tx)
tx = tx. tx = tx.
Model(&e.District{}). Model(&e.District{}).
Scopes(gh.Filter(input)). Scopes(gh.Filter(input.FilterDto)).
Count(&count). Count(&count).
Scopes(gh.Paginate(input, &pagination)) Scopes(gh.Paginate(input, &pagination))
@@ -87,6 +87,9 @@ func ReadList(input e.ReadListDto) (*d.Data, error) {
return err return err
} }
if len(input.Includes) > 0 {
input.Preloads = pu.GetPreloads(input.Includes)
}
if dataList, metaList, err = ReadListData(input, &event, tx); err != nil { if dataList, metaList, err = ReadListData(input, &event, tx); err != nil {
return err return err
} }
@@ -47,9 +47,17 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.Pr
tx = dg.I tx = dg.I
} }
if len(input.Preloads) > 0 {
for _, preload := range input.Preloads {
tx = tx.Preload(preload)
}
}
plh.SearchCodeOrName(input.Search, tx)
tx = tx. tx = tx.
Model(&e.Province{}). Model(&e.Province{}).
Scopes(gh.Filter(input)). Scopes(gh.Filter(input.FilterDto)).
Count(&count). Count(&count).
Scopes(gh.Paginate(input, &pagination)) Scopes(gh.Paginate(input, &pagination))
@@ -87,6 +87,9 @@ func ReadList(input e.ReadListDto) (*d.Data, error) {
return err return err
} }
if len(input.Includes) > 0 {
input.Preloads = pu.GetPreloads(input.Includes)
}
if dataList, metaList, err = ReadListData(input, &event, tx); err != nil { if dataList, metaList, err = ReadListData(input, &event, tx); err != nil {
return err return err
} }
@@ -47,9 +47,17 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.Re
tx = dg.I tx = dg.I
} }
if len(input.Preloads) > 0 {
for _, preload := range input.Preloads {
tx = tx.Preload(preload)
}
}
plh.SearchCodeOrName(input.Search, tx)
tx = tx. tx = tx.
Model(&e.Regency{}). Model(&e.Regency{}).
Scopes(gh.Filter(input)). Scopes(gh.Filter(input.FilterDto)).
Count(&count). Count(&count).
Scopes(gh.Paginate(input, &pagination)) Scopes(gh.Paginate(input, &pagination))
@@ -87,6 +87,9 @@ func ReadList(input e.ReadListDto) (*d.Data, error) {
return err return err
} }
if len(input.Includes) > 0 {
input.Preloads = pu.GetPreloads(input.Includes)
}
if dataList, metaList, err = ReadListData(input, &event, tx); err != nil { if dataList, metaList, err = ReadListData(input, &event, tx); err != nil {
return err return err
} }
+7 -1
View File
@@ -47,11 +47,17 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.Uo
tx = dg.I tx = dg.I
} }
if len(input.Preloads) > 0 {
for _, preload := range input.Preloads {
tx = tx.Preload(preload)
}
}
plh.SearchCodeOrName(input.Search, tx) plh.SearchCodeOrName(input.Search, tx)
tx = tx. tx = tx.
Model(&e.Uom{}). Model(&e.Uom{}).
Scopes(gh.Filter(input)). Scopes(gh.Filter(input.FilterDto)).
Count(&count). Count(&count).
Scopes(gh.Paginate(input, &pagination)). Scopes(gh.Paginate(input, &pagination)).
Order("\"CreatedAt\" DESC") Order("\"CreatedAt\" DESC")
@@ -87,6 +87,9 @@ func ReadList(input e.ReadListDto) (*d.Data, error) {
return err return err
} }
if len(input.Includes) > 0 {
input.Preloads = pu.GetPreloads(input.Includes)
}
if dataList, metaList, err = ReadListData(input, &event, tx); err != nil { if dataList, metaList, err = ReadListData(input, &event, tx); err != nil {
return err return err
} }
@@ -47,9 +47,17 @@ func ReadListData(input e.ReadListDto, event *pl.Event, dbx ...*gorm.DB) ([]e.Vi
tx = dg.I tx = dg.I
} }
if len(input.Preloads) > 0 {
for _, preload := range input.Preloads {
tx = tx.Preload(preload)
}
}
plh.SearchCodeOrName(input.Search, tx)
tx = tx. tx = tx.
Model(&e.Village{}). Model(&e.Village{}).
Scopes(gh.Filter(input)). Scopes(gh.Filter(input.FilterDto)).
Count(&count). Count(&count).
Scopes(gh.Paginate(input, &pagination)) Scopes(gh.Paginate(input, &pagination))