perbaiikan api

This commit is contained in:
2025-06-19 12:53:42 +07:00
parent 5349d74d48
commit 6cbd9c8a85
5 changed files with 98 additions and 15 deletions
+3 -7
View File
@@ -1,16 +1,12 @@
FROM golang:1.23-alpine AS builder
# Set timezone ke Asia/Jakarta
ENV TZ=Asia/Jakarta
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod tidy
COPY go.mod ./
COPY go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o main ./cmd/api
# RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app .
+1
View File
@@ -237,6 +237,7 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw=
golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+3 -2
View File
@@ -36,8 +36,9 @@ func (s *Server) RegisterRoutes() http.Handler {
admin.POST("/delete", dataretribusiHandler.DeleteDataRetribusi)
}
data_retribusi.GET("/getdataall/Limit/:limit/Offset/:offset", dataretribusiHandler.GetAllDataRetribusi)
data_retribusi.GET("/getdata/Kodetarif/:kodetarif/Limit/:limit/Offset/:offset", dataretribusiHandler.Dataretribusiget)
data_retribusi.GET("/getdata/Limit/:limit/Offset/:offset", dataretribusiHandler.GetAllDataRetribusi)
data_retribusi.GET("/kodetarif/:kodetarif", dataretribusiHandler.Dataretribusiget)
data_retribusi.GET("/kelompokobyek/:kelompok", dataretribusiHandler.DataretribusigetbyKel)
}
return r
+43 -3
View File
@@ -51,10 +51,10 @@ func (s *DatabaseService) GetAlldataretribusi(Limit, Offset string) ([]*satudata
}
/* *todo get data by kode tarif*/
func (s *DatabaseService) Getdataretribusi(Kodetarif, Limit, Offset string) ([]*satudata_models.DataRetribusiGet, error) {
func (s *DatabaseService) Getdataretribusi(Kodetarif string) ([]*satudata_models.DataRetribusiGet, error) {
var dataretribusi []*satudata.DataRetribusiGet
query := `select * from data_retribusi where "Kode_tarif" = ? LIMIT ? Offset ? `
errQuery := s.DB.Debug().Raw(query, Kodetarif, Limit, Offset).Scan(&dataretribusi).Error
query := `select * from data_retribusi where "Kode_tarif" = ? `
errQuery := s.DB.Debug().Raw(query, Kodetarif).Scan(&dataretribusi).Error
if errQuery != nil {
if errors.Is(errQuery, gorm.ErrRecordNotFound) {
errMsg := errors.New("Data Tidak Ditemukan")
@@ -67,6 +67,46 @@ func (s *DatabaseService) Getdataretribusi(Kodetarif, Limit, Offset string) ([]*
return dataretribusi, nil
}
/* *todo get data by kelompok obyek*/
func (s *DatabaseService) GetdataretribusibyKelompok(kel string) ([]*satudata_models.DataRetribusiGet, error) {
var dataretribusi []*satudata.DataRetribusiGet
query := `select * from data_retribusi where "Kelompok_obyek" = ? `
errQuery := s.DB.Debug().Raw(query, kel).Scan(&dataretribusi).Error
if errQuery != nil {
if errors.Is(errQuery, gorm.ErrRecordNotFound) {
errMsg := errors.New("Data Tidak Ditemukan")
log.Println(errMsg)
return nil, errMsg
}
log.Println(errQuery)
return nil, errQuery
}
return dataretribusi, nil
}
/* *todo get data kelompok obyek*/
func (s *DatabaseService) Validasikelompok(kel string) (bool, error) {
var count int
query := `SELECT COUNT(DISTINCT "Kelompok_obyek") FROM data_retribusi WHERE "Kelompok_obyek" = ?`
errQuery := s.DB.Debug().Raw(query, kel).Scan(&count).Error
if errQuery != nil {
log.Println(errQuery)
return false, errQuery
}
return count > 0, nil
}
func (s *DatabaseService) Validasikode(kodetarif string) (bool, error) {
var count int
query := `SELECT COUNT(DISTINCT "Kode_tarif") FROM data_retribusi WHERE "Kode_tarif" = ?`
errQuery := s.DB.Debug().Raw(query, kodetarif).Scan(&count).Error
if errQuery != nil {
log.Println(errQuery)
return false, errQuery
}
return count > 0, nil
}
func (s *DatabaseService) Putdataretribusi(req *satudata_models.DataRetribusiPut) error {
query := ` update data_retribusi set "status" = ?,"Jenis"=?,"Pelayanan" = ?,"Dinas"=?,"Kelompok_obyek"=? ,"Kode_tarif"=? ,"Uraian_1"=? ,"Uraian_2"=? ,"Uraian_3"=? ,"Tarif"=? ,"Satuan"=?,"Tarif_overtime"=?,"Satuan_overtime"=? ,"Rekening_pokok"=? ,"Rekening_denda"=? where "id" = ? `
errUpdate := s.DB.Debug().Exec(query,
+48 -3
View File
@@ -53,16 +53,61 @@ func GetAllDataRetribusi(c *gin.Context) {
}
c.JSON(http.StatusOK, dataallretribusi)
}
func DataretribusigetbyKel(c *gin.Context) {
db := database.New().GetDB("satudata")
satudata := connDatabase.NewDatabaseService(db)
kel := c.Param("kelompok")
log.Println("REQUEST", kel)
validasi, err := satudata.Validasikelompok(kel)
if err != nil {
log.Println("Error validating kelompok_obyek:", err)
c.JSON(http.StatusInternalServerError, gin.H{
"message": "Failed to validate kelompok_obyek",
})
return
}
if !validasi {
c.JSON(http.StatusBadRequest, gin.H{
"message": "Tidak di Temukan Kelompok Obyek",
})
return
}
dataRetribusi, errData := satudata.GetdataretribusibyKelompok(kel)
if errData != nil {
log.Println(errData)
c.JSON(http.StatusBadRequest, gin.H{
"message": errData.Error(),
})
return
}
c.JSON(http.StatusOK, dataRetribusi)
}
func Dataretribusiget(c *gin.Context) {
db := database.New().GetDB("satudata")
satudata := connDatabase.NewDatabaseService(db)
kodetarif := c.Param("kodetarif")
limit := c.Param("limit")
offset := c.Param("offset")
log.Println("REQUEST", kodetarif)
dataRetribusi, errData := satudata.Getdataretribusi(kodetarif, limit, offset)
validasi, err := satudata.Validasikode(kodetarif)
if err != nil {
log.Println("Error validating kodetarif:", err)
c.JSON(http.StatusInternalServerError, gin.H{
"message": "Failed to validate kodetarif",
})
return
}
if !validasi {
c.JSON(http.StatusBadRequest, gin.H{
"message": "Tidak di Temukan Kode Tarif",
})
return
}
dataRetribusi, errData := satudata.Getdataretribusi(kodetarif)
if errData != nil {
log.Println(errData)
c.JSON(http.StatusBadRequest, gin.H{