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) }