206 lines
6.4 KiB
Go
206 lines
6.4 KiB
Go
package retribusi
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/google/uuid"
|
|
"log"
|
|
"net/http"
|
|
"template_blueprint/internal/database"
|
|
//_ "template_blueprint/cmd/api/docs"
|
|
//_ "template_blueprint/docs"
|
|
//_ "template_blueprint/docs"
|
|
//_ "template_blueprint/internal/docs"
|
|
connDatabase "template_blueprint/pkg/database/satu_data"
|
|
"template_blueprint/pkg/models/satu_data"
|
|
"time"
|
|
)
|
|
|
|
// GetDataRetribusi return list of all retribution from the database
|
|
// @Summary all retribution
|
|
// @Description return list of all retribution from the database
|
|
// @Param limit path string true "limit"
|
|
// @Param offset path string true "offset"
|
|
// @Tags Retribusi
|
|
// @Success 200 {object} satu_data.Retribusi
|
|
// @Router /retribusi/getData/Limit/{limit}/Offset/{offset} [get]
|
|
func GetDataRetribusi(c *gin.Context) {
|
|
db := database.New().GetDB("satudata")
|
|
satudata := connDatabase.NewDatabaseService(db)
|
|
limit := c.Param("limit")
|
|
offset := c.Param("offset")
|
|
|
|
log.Println("limit:", limit, ",offset:", offset)
|
|
dataRetribusi, err := satudata.GetRetribusi(limit, offset)
|
|
if err != nil {
|
|
c.JSON(http.StatusBadRequest, gin.H{"message": err.Error()})
|
|
return
|
|
}
|
|
|
|
if len(dataRetribusi) == 0 {
|
|
//log.Println("data retribusi tidak ditemukan")
|
|
c.JSON(http.StatusNotFound, gin.H{"message": "data retribusi tidak ditemukan"})
|
|
return
|
|
}
|
|
c.JSON(http.StatusOK, dataRetribusi)
|
|
}
|
|
|
|
// InsertRetribution godoc
|
|
// @Summary Create retribution
|
|
// @Description Save retribution data in DB
|
|
// @Param data body satu_data.Retribusi true "data Retribusi"
|
|
// @Produce application/json
|
|
// @Tags Retribusi
|
|
// @Success 200 {object} map[string]string "Data Berhasil disimpan"
|
|
// @Router /retribusi/insertretribusi [post]
|
|
func InsertRetribution(c *gin.Context) {
|
|
db := database.New().GetDB("satudata")
|
|
satudata := connDatabase.NewDatabaseService(db)
|
|
|
|
var request *satu_data.Retribusi
|
|
err := c.Bind(&request)
|
|
if err != nil {
|
|
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
|
|
return
|
|
}
|
|
ID := uuid.New().String()
|
|
timeNow := time.Now().Format("2006-01-02 15:04:05")
|
|
reqInsert := &satu_data.Retribusi{
|
|
ID: ID,
|
|
Status: request.Status,
|
|
Sort: request.Sort,
|
|
UserCreated: request.UserCreated,
|
|
DateCreated: timeNow,
|
|
Jenis: request.Jenis,
|
|
Pelayanan: request.Pelayanan,
|
|
Dinas: request.Dinas,
|
|
KelompokObyek: request.KelompokObyek,
|
|
KodeTarif: request.KodeTarif,
|
|
Tarif: request.Tarif,
|
|
Satuan: request.Satuan,
|
|
TarifOverTime: request.TarifOverTime,
|
|
SatuanOverTime: request.SatuanOverTime,
|
|
RekeningPokok: request.RekeningPokok,
|
|
RekeningDenda: request.RekeningDenda,
|
|
Uraian1: request.Uraian1,
|
|
Uraian2: request.Uraian2,
|
|
Uraian3: request.Uraian3,
|
|
}
|
|
|
|
//log.Println("request:", request)
|
|
//fmt.Println(reflect.TypeOf(reqInsert))
|
|
errInsertData := satudata.InsertRetribusi(reqInsert)
|
|
if errInsertData != nil {
|
|
c.JSON(http.StatusInternalServerError, gin.H{"error": errInsertData.Error()})
|
|
return
|
|
}
|
|
c.JSON(http.StatusCreated, gin.H{"message": "Data Berhasil disimpan"})
|
|
}
|
|
|
|
// UpdateRetribution godoc
|
|
// @Summary Update retribution
|
|
// @Description Change retribution data in DB
|
|
// @Param data body satu_data.Retribusi true "data Retribusi"
|
|
// @Produce application/json
|
|
// @Tags Retribusi
|
|
// @Success 200 {object} map[string]string "Data Berhasil Diubah"
|
|
// @Router /retribusi/updateretribusi [put]
|
|
func UpdateRetribution(c *gin.Context) {
|
|
db := database.New().GetDB("satudata")
|
|
satudata := connDatabase.NewDatabaseService(db)
|
|
|
|
var request *satu_data.Retribusi
|
|
err := c.Bind(&request)
|
|
if err != nil {
|
|
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
|
|
return
|
|
}
|
|
|
|
timeNow := time.Now().Format("2006-01-02 15:04:05")
|
|
reqUpdate := &satu_data.Retribusi{
|
|
ID: request.ID,
|
|
Status: request.Status,
|
|
Sort: request.Sort,
|
|
UserUpdated: request.UserUpdated,
|
|
DateUpdated: timeNow,
|
|
Jenis: request.Jenis,
|
|
Pelayanan: request.Pelayanan,
|
|
Dinas: request.Dinas,
|
|
KelompokObyek: request.KelompokObyek,
|
|
KodeTarif: request.KodeTarif,
|
|
Tarif: request.Tarif,
|
|
Satuan: request.Satuan,
|
|
TarifOverTime: request.TarifOverTime,
|
|
SatuanOverTime: request.SatuanOverTime,
|
|
RekeningPokok: request.RekeningPokok,
|
|
RekeningDenda: request.RekeningDenda,
|
|
Uraian1: request.Uraian1,
|
|
Uraian2: request.Uraian2,
|
|
Uraian3: request.Uraian3,
|
|
}
|
|
errUpdateData := satudata.UpdateRetribusi(reqUpdate)
|
|
if errUpdateData != nil {
|
|
c.JSON(http.StatusInternalServerError, gin.H{"error": errUpdateData.Error()})
|
|
return
|
|
}
|
|
|
|
c.JSON(http.StatusOK, gin.H{"message": "Data Berhasil Diubah", "data": reqUpdate})
|
|
}
|
|
|
|
// DeleteDataRetribusi godoc
|
|
// @Summary Delete retribution
|
|
// @Description Remove retribution data by id
|
|
// @Param ID path string true "ID"
|
|
// @Produce application/json
|
|
// @Tags Retribusi
|
|
// @Success 200 {object} map[string]string "Data Berhasil dihapus"
|
|
// @Router /retribusi/deleteretribusi/{ID} [delete]
|
|
func DeleteDataRetribusi(c *gin.Context) {
|
|
db := database.New().GetDB("satudata")
|
|
satudata := connDatabase.NewDatabaseService(db)
|
|
|
|
//var request *satu_data.Retribusi
|
|
ID := c.Param("id")
|
|
//err := c.Bind(&request)
|
|
//if err != nil {
|
|
// c.JSON(http.StatusInternalServerError, gin.H{"message": err.Error})
|
|
// return
|
|
//}
|
|
|
|
errDelete := satudata.DeleteRetribusi(ID)
|
|
if errDelete != nil {
|
|
c.JSON(http.StatusBadRequest, gin.H{"error": error.Error})
|
|
return
|
|
}
|
|
c.JSON(http.StatusOK, gin.H{"message": "Data Berhasil dihapus"})
|
|
}
|
|
|
|
// SearchDataRetribusi godoc
|
|
// @Summary Search retribution
|
|
// @Description search retribution data by id
|
|
// @Param Kelompok_obyek path string true "Kelompok_obyek"
|
|
// @Produce application/json
|
|
// @Tags Retribusi
|
|
// @Success 200 {object} satu_data.Retribusi
|
|
// @Router /retribusi/searchData/{kelompok_obyek} [get]
|
|
func SearchDataRetribusi(c *gin.Context) {
|
|
db := database.New().GetDB("satudata")
|
|
satudata := connDatabase.NewDatabaseService(db)
|
|
|
|
Kelompok_obyek := c.Param("kelompok_obyek")
|
|
|
|
//log.Println("Kelompok_obyek :", Kelompok_obyek)
|
|
dataRetribusi, err := satudata.SearchRetribusi(Kelompok_obyek)
|
|
if err != nil {
|
|
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
|
|
return
|
|
}
|
|
|
|
if len(dataRetribusi) == 0 {
|
|
//log.Println("data retribusi tidak ditemukan")
|
|
c.JSON(http.StatusNotFound, gin.H{"message": "data retribusi tidak ditemukan"})
|
|
return
|
|
}
|
|
|
|
c.JSON(http.StatusOK, dataRetribusi)
|
|
}
|