refactor reference repository

This commit is contained in:
renaldybrada
2026-02-19 11:42:57 +07:00
parent 8ed119b988
commit af80d8c7f6
13 changed files with 63 additions and 56 deletions
@@ -3,10 +3,10 @@ package antrianoperasi
import (
"log"
"github.com/gin-gonic/gin"
"context"
)
func (req CreatePasienOperasiRequest) DataValidation(c *gin.Context, handler AntrianOperasiHandler) (bool, []string) {
func (req CreatePasienOperasiRequest) DataValidation(c context.Context, handler AntrianOperasiHandler) (bool, []string) {
isValid := false
var errValidation []string
@@ -24,7 +24,9 @@ func NewDiagnosaHandler(repo IDiagnosaRepository) DiagnosaHandler {
// @Failure 500 {object} shared.BaseErrorResponse
// @Router /reference/diagnosa/ [get]
func (h DiagnosaHandler) ListDiagnosa(c *gin.Context) {
list, err := h.repo.SearchableListDiagnosa(c)
search := c.Query("search")
list, err := h.repo.SearchableListDiagnosa(c, search)
if err != nil {
errorResponse := baseResponse.BaseErrorResponse{
Success: false,
@@ -8,15 +8,15 @@ import (
"errors"
"github.com/gin-gonic/gin"
"context"
)
const DB_NAME = "db_simrs"
const TBL_NAME = "icd"
type IDiagnosaRepository interface {
SearchableListDiagnosa(c *gin.Context) (ListDiagnosaModel, error)
GetDiagnosaByKode(c *gin.Context, kode string) (DiagnosaModel, error)
SearchableListDiagnosa(c context.Context, search string) (ListDiagnosaModel, error)
GetDiagnosaByKode(c context.Context, kode string) (DiagnosaModel, error)
}
type diagnosaRepo struct {
@@ -37,9 +37,8 @@ func NewRepository(dbService database.Service) IDiagnosaRepository {
}
}
func (r diagnosaRepo) SearchableListDiagnosa(c *gin.Context) (ListDiagnosaModel, error) {
func (r diagnosaRepo) SearchableListDiagnosa(c context.Context, search string) (ListDiagnosaModel, error) {
var result ListDiagnosaModel
search := c.Query("search")
query := queryUtils.DynamicQuery{
From: TBL_NAME,
@@ -74,7 +73,7 @@ func (r diagnosaRepo) SearchableListDiagnosa(c *gin.Context) (ListDiagnosaModel,
return result, nil
}
func (r diagnosaRepo) GetDiagnosaByKode(c *gin.Context, kode string) (DiagnosaModel, error) {
func (r diagnosaRepo) GetDiagnosaByKode(c context.Context, kode string) (DiagnosaModel, error) {
var resultQuery []DiagnosaModel
var result DiagnosaModel
+7 -3
View File
@@ -1,11 +1,11 @@
package dokter
import (
"antrian-operasi/internal/shared"
baseResponse "antrian-operasi/internal/shared"
"log"
"net/http"
baseResponse "antrian-operasi/internal/shared"
"github.com/gin-gonic/gin"
)
@@ -27,7 +27,11 @@ func NewDokterHandler(repo IDokterRepository) DokterHandler {
// @Failure 500 {object} shared.BaseErrorResponse
// @Router /reference/dokter/ [get]
func (h DokterHandler) ListDokter(c *gin.Context) {
result, err := h.repo.SearchableListDokter(c)
limit := shared.ParseQueryLimit(c)
offset := shared.ParseQueryOffset(c)
search := c.Query("search")
result, err := h.repo.SearchableListDokter(c, search, limit, offset)
if err != nil {
errorResponse := baseResponse.BaseErrorResponse{
Success: false,
@@ -2,21 +2,21 @@ package dokter
import (
"antrian-operasi/internal/database"
"antrian-operasi/internal/shared"
"errors"
"log"
queryUtils "antrian-operasi/internal/utils/query"
"github.com/gin-gonic/gin"
"context"
)
const DB_NAME = "db_antrian"
const TBL_NAME = "data_pegawai"
type IDokterRepository interface {
SearchableListDokter(c *gin.Context) (ListDokterModelPaginate, error)
GetDokterById(c *gin.Context, id string) (DokterModel, error)
SearchableListDokter(c context.Context, search string, limit int, offset int) (ListDokterModelPaginate, error)
GetDokterById(c context.Context, id string) (DokterModel, error)
}
type dokterRepo struct {
@@ -74,11 +74,8 @@ func baseSelectQuery() queryUtils.DynamicQuery {
return query
}
func (r dokterRepo) SearchableListDokter(c *gin.Context) (ListDokterModelPaginate, error) {
func (r dokterRepo) SearchableListDokter(c context.Context, search string, limit int, offset int) (ListDokterModelPaginate, error) {
var result ListDokterModelPaginate
limit := shared.ParseQueryLimit(c)
offset := shared.ParseQueryOffset(c)
search := c.Query("search")
// base query
query := baseSelectQuery()
@@ -134,7 +131,7 @@ func (r dokterRepo) SearchableListDokter(c *gin.Context) (ListDokterModelPaginat
return result, nil
}
func (r dokterRepo) GetDokterById(c *gin.Context, id string) (DokterModel, error) {
func (r dokterRepo) GetDokterById(c context.Context, id string) (DokterModel, error) {
var resultQuery []DokterModel
var result DokterModel
@@ -24,7 +24,8 @@ func NewKategoriHandler(repo IKategoriRepository) KategoriHandler {
// @Failure 500 {object} shared.BaseErrorResponse
// @Router /reference/kategori/ [get]
func (h KategoriHandler) ListKategoriOperasi(c *gin.Context) {
list, err := h.repo.SearchableListKategori(c)
search := c.Query("search")
list, err := h.repo.SearchableListKategori(c, search)
if err != nil {
errorResponse := baseResponse.BaseErrorResponse{
Success: false,
@@ -6,15 +6,15 @@ import (
queryUtils "antrian-operasi/internal/utils/query"
"github.com/gin-gonic/gin"
"context"
)
const DB_NAME = "db_antrian"
const TBL_NAME = "daftar_kategori_operasi"
type IKategoriRepository interface {
SearchableListKategori(c *gin.Context) ([]KategoriOperasiModel, error)
GetKategoriById(c *gin.Context, id int) (KategoriOperasiModel, error)
SearchableListKategori(c context.Context, search string) ([]KategoriOperasiModel, error)
GetKategoriById(c context.Context, id int) (KategoriOperasiModel, error)
}
type kategoriRepo struct {
@@ -55,9 +55,8 @@ func baseSelectQuery() queryUtils.DynamicQuery {
}
}
func (r kategoriRepo) SearchableListKategori(c *gin.Context) ([]KategoriOperasiModel, error) {
func (r kategoriRepo) SearchableListKategori(c context.Context, search string) ([]KategoriOperasiModel, error) {
var result []KategoriOperasiModel
search := c.Query("search")
query := baseSelectQuery()
@@ -84,7 +83,7 @@ func (r kategoriRepo) SearchableListKategori(c *gin.Context) ([]KategoriOperasiM
return result, nil
}
func (r kategoriRepo) GetKategoriById(c *gin.Context, id int) (KategoriOperasiModel, error) {
func (r kategoriRepo) GetKategoriById(c context.Context, id int) (KategoriOperasiModel, error) {
var resultQuery []KategoriOperasiModel
var result KategoriOperasiModel
+3 -1
View File
@@ -24,7 +24,9 @@ func NewPasienHandler(repo IPasienRepository) PasienHandler {
// @Failure 500 {object} shared.BaseErrorResponse
// @Router /reference/pasien/ [get]
func (h PasienHandler) ListPasienOperasi(c *gin.Context) {
list, err := h.repo.SearchableListPasien(c)
search := c.Query("search")
list, err := h.repo.SearchableListPasien(c, search)
if err != nil {
errorResponse := baseResponse.BaseErrorResponse{
Success: false,
@@ -6,15 +6,15 @@ import (
queryUtils "antrian-operasi/internal/utils/query"
"github.com/gin-gonic/gin"
"context"
)
const DB_NAME = "db_simrs"
const TBL_NAME = "m_pasien"
type IPasienRepository interface {
SearchableListPasien(c *gin.Context) (ListPasienModel, error)
GetPasienByNoMr(c *gin.Context, noMr string) (PasienModel, error)
SearchableListPasien(c context.Context, search string) (ListPasienModel, error)
GetPasienByNoMr(c context.Context, noMr string) (PasienModel, error)
}
type pasienRepo struct {
@@ -61,9 +61,8 @@ func baseSelectQuery() queryUtils.DynamicQuery {
}
}
func (r pasienRepo) SearchableListPasien(c *gin.Context) (ListPasienModel, error) {
func (r pasienRepo) SearchableListPasien(c context.Context, search string) (ListPasienModel, error) {
var result ListPasienModel
search := c.Query("search")
query := baseSelectQuery()
query.Limit = 10 // default limit
@@ -93,7 +92,7 @@ func (r pasienRepo) SearchableListPasien(c *gin.Context) (ListPasienModel, error
return result, nil
}
func (r pasienRepo) GetPasienByNoMr(c *gin.Context, noMr string) (PasienModel, error) {
func (r pasienRepo) GetPasienByNoMr(c context.Context, noMr string) (PasienModel, error) {
var resultQuery ListPasienModel
var result PasienModel
@@ -24,7 +24,8 @@ func NewSpesialisHandler(repo ISpesialisRepository) SpesialisHandler {
// @Failure 500 {object} shared.BaseErrorResponse
// @Router /reference/spesialis/ [get]
func (h SpesialisHandler) ListSpesialis(c *gin.Context) {
list, err := h.repo.SearchableListSpesialis(c)
search := c.Query("search")
list, err := h.repo.SearchableListSpesialis(c, search)
if err != nil {
errorResponse := baseResponse.BaseErrorResponse{
Success: false,
@@ -49,7 +50,10 @@ func (h SpesialisHandler) ListSpesialis(c *gin.Context) {
// @Failure 500 {object} shared.BaseErrorResponse
// @Router /reference/sub-spesialis/ [get]
func (h SpesialisHandler) ListSubSpesialis(c *gin.Context) {
list, err := h.repo.SearchableListSubSpesialis(c)
search := c.Query("search")
idSpesialis := c.Query("id_spesialis")
list, err := h.repo.SearchableListSubSpesialis(c, search, idSpesialis)
if err != nil {
errorResponse := baseResponse.BaseErrorResponse{
Success: false,
@@ -6,16 +6,16 @@ import (
queryUtils "antrian-operasi/internal/utils/query"
"github.com/gin-gonic/gin"
"context"
)
const DB_NAME = "db_antrian"
type ISpesialisRepository interface {
SearchableListSpesialis(c *gin.Context) ([]SpesialisModel, error)
SearchableListSubSpesialis(c *gin.Context) ([]SubSpesialisModel, error)
GetSpesialisById(c *gin.Context, id int) (SpesialisModel, error)
GetSubSpesialisById(c *gin.Context, id int) (SubSpesialisModel, error)
SearchableListSpesialis(c context.Context, search string) ([]SpesialisModel, error)
SearchableListSubSpesialis(c context.Context, search string, idSpesialis string) ([]SubSpesialisModel, error)
GetSpesialisById(c context.Context, id int) (SpesialisModel, error)
GetSubSpesialisById(c context.Context, id int) (SubSpesialisModel, error)
}
type spesialisRepo struct {
@@ -83,9 +83,8 @@ func baseQueryListSubSpesialis() queryUtils.DynamicQuery {
return query
}
func (r spesialisRepo) SearchableListSpesialis(c *gin.Context) ([]SpesialisModel, error) {
func (r spesialisRepo) SearchableListSpesialis(c context.Context, search string) ([]SpesialisModel, error) {
var result []SpesialisModel
search := c.Query("search")
query := baseQueryListSpesialis()
@@ -113,10 +112,10 @@ func (r spesialisRepo) SearchableListSpesialis(c *gin.Context) ([]SpesialisModel
return result, nil
}
func (r spesialisRepo) SearchableListSubSpesialis(c *gin.Context) ([]SubSpesialisModel, error) {
func (r spesialisRepo) SearchableListSubSpesialis(c context.Context, search string, idSpesialis string) ([]SubSpesialisModel, error) {
var result []SubSpesialisModel
search := c.Query("search")
idSpesialis := c.Query("id_spesialis")
// search := c.Query("search")
// idSpesialis := c.Query("id_spesialis")
query := baseQueryListSubSpesialis()
@@ -153,7 +152,7 @@ func (r spesialisRepo) SearchableListSubSpesialis(c *gin.Context) ([]SubSpesiali
return result, nil
}
func (r spesialisRepo) GetSpesialisById(c *gin.Context, id int) (SpesialisModel, error) {
func (r spesialisRepo) GetSpesialisById(c context.Context, id int) (SpesialisModel, error) {
var resultQuery []SpesialisModel
var result SpesialisModel
@@ -182,7 +181,7 @@ func (r spesialisRepo) GetSpesialisById(c *gin.Context, id int) (SpesialisModel,
return resultQuery[0], nil
}
func (r spesialisRepo) GetSubSpesialisById(c *gin.Context, id int) (SubSpesialisModel, error) {
func (r spesialisRepo) GetSubSpesialisById(c context.Context, id int) (SubSpesialisModel, error) {
var resultQuery []SubSpesialisModel
var result SubSpesialisModel
@@ -24,7 +24,9 @@ func NewTindakanHandler(repo ITindakanRepository) TindakanHandler {
// @Failure 500 {object} shared.BaseErrorResponse
// @Router /reference/tindakan/ [get]
func (h TindakanHandler) ListDiagnosa(c *gin.Context) {
list, err := h.repo.SearchableListTindakan(c)
search := c.Query("search")
list, err := h.repo.SearchableListTindakan(c, search)
if err != nil {
errorResponse := baseResponse.BaseErrorResponse{
Success: false,
@@ -7,15 +7,15 @@ import (
"errors"
"github.com/gin-gonic/gin"
"context"
)
const DB_NAME = "db_simrs"
const TBL_NAME = "icd_cm"
type ITindakanRepository interface {
SearchableListTindakan(c *gin.Context) (ListTindakanModel, error)
GetTindakanByKode(c *gin.Context, kode string) (TindakanModel, error)
SearchableListTindakan(c context.Context, search string) (ListTindakanModel, error)
GetTindakanByKode(c context.Context, kode string) (TindakanModel, error)
}
type tindakanRepo struct {
@@ -36,9 +36,8 @@ func NewRepository(dbService database.Service) ITindakanRepository {
}
}
func (r tindakanRepo) SearchableListTindakan(c *gin.Context) (ListTindakanModel, error) {
func (r tindakanRepo) SearchableListTindakan(c context.Context, search string) (ListTindakanModel, error) {
var result ListTindakanModel
search := c.Query("search")
query := queryUtils.DynamicQuery{
From: TBL_NAME,
@@ -71,7 +70,7 @@ func (r tindakanRepo) SearchableListTindakan(c *gin.Context) (ListTindakanModel,
return result, nil
}
func (r tindakanRepo) GetTindakanByKode(c *gin.Context, kode string) (TindakanModel, error) {
func (r tindakanRepo) GetTindakanByKode(c context.Context, kode string) (TindakanModel, error) {
var resultQuery []TindakanModel
var result TindakanModel