Perbaikan Generate code

This commit is contained in:
meninjar
2025-11-03 05:56:41 +00:00
parent 19324041b8
commit db5a19e9cc
12 changed files with 7018 additions and 1826 deletions

No files matched your search

File diff suppressed because it is too large Load diff
+69 -5
View File
@@ -172,6 +172,7 @@ func NewRetribusiHandler() *RetribusiHandler {
// @Failure 500 {object} models.ErrorResponse "Internal server error"
// @Router /api/v1/retribusis [get]
func (h *RetribusiHandler) GetRetribusi(c *gin.Context) {
logger.Info("Request received", map[string]interface{}{"method": c.Request.Method, "path": c.Request.URL.Path})
// CHANGE: Increase timeout for complex queries
ctx, cancel := context.WithTimeout(c.Request.Context(), 120*time.Second)
defer cancel()
@@ -179,9 +180,31 @@ func (h *RetribusiHandler) GetRetribusi(c *gin.Context) {
// CHANGE: Use the core fetchRetribusisDynamic function for all data retrieval logic.
// We only need to build DynamicQuery from simple parameters.
query := queryUtils.DynamicQuery{
From: "data_retribusi",
Fields: []queryUtils.SelectField{{Expression: "*"}},
Sort: []queryUtils.SortField{{Column: "date_created", Order: "DESC"}},
From: "data_retribusi",
Fields: []queryUtils.SelectField{
{Expression: "id"},
{Expression: "status"},
{Expression: "sort"},
{Expression: "user_created"},
{Expression: "date_created"},
{Expression: "user_updated"},
{Expression: "date_updated"},
{Expression: "Jenis"},
{Expression: "Pelayanan"},
{Expression: "Dinas"},
{Expression: "Kelompok_obyek"},
{Expression: "Kode_tarif"},
{Expression: "Tarif"},
{Expression: "Satuan"},
{Expression: "Tarif_overtime"},
{Expression: "Satuan_overtime"},
{Expression: "Rekening_pokok"},
{Expression: "Rekening_denda"},
{Expression: "Uraian_1"},
{Expression: "Uraian_2"},
{Expression: "Uraian_3"},
},
Sort: []queryUtils.SortField{{Column: "date_created", Order: "DESC"}},
}
// Parse pagination
@@ -343,6 +366,7 @@ func (h *RetribusiHandler) GetRetribusi(c *gin.Context) {
// @Failure 500 {object} models.ErrorResponse "Internal server error"
// @Router /api/v1/retribusi/{id} [get]
func (h *RetribusiHandler) GetRetribusiByID(c *gin.Context) {
logger.Info("Request received", map[string]interface{}{"method": c.Request.Method, "path": c.Request.URL.Path})
id := c.Param("id")
if _, err := uuid.Parse(id); err != nil {
h.respondError(c, "Invalid ID format", err, http.StatusBadRequest)
@@ -375,8 +399,30 @@ func (h *RetribusiHandler) GetRetribusiByID(c *gin.Context) {
defer cancel()
dynamicQuery := queryUtils.DynamicQuery{
From: "data_retribusi",
Fields: []queryUtils.SelectField{{Expression: "*"}},
From: "data_retribusi",
Fields: []queryUtils.SelectField{
{Expression: "id"},
{Expression: "status"},
{Expression: "sort"},
{Expression: "user_created"},
{Expression: "date_created"},
{Expression: "user_updated"},
{Expression: "date_updated"},
{Expression: "Jenis"},
{Expression: "Pelayanan"},
{Expression: "Dinas"},
{Expression: "Kelompok_obyek"},
{Expression: "Kode_tarif"},
{Expression: "Tarif"},
{Expression: "Satuan"},
{Expression: "Tarif_overtime"},
{Expression: "Satuan_overtime"},
{Expression: "Rekening_pokok"},
{Expression: "Rekening_denda"},
{Expression: "Uraian_1"},
{Expression: "Uraian_2"},
{Expression: "Uraian_3"},
},
Filters: []queryUtils.FilterGroup{{
Filters: []queryUtils.DynamicFilter{
{Column: "id", Operator: queryUtils.OpEqual, Value: id},
@@ -424,6 +470,7 @@ func (h *RetribusiHandler) GetRetribusiByID(c *gin.Context) {
// @Failure 500 {object} models.ErrorResponse "Internal server error"
// @Router /api/v1/retribusis/dynamic [get]
func (h *RetribusiHandler) GetRetribusiDynamic(c *gin.Context) {
logger.Info("Request received", map[string]interface{}{"method": c.Request.Method, "path": c.Request.URL.Path})
parser := queryUtils.NewQueryParser().SetLimits(10, 100)
dynamicQuery, err := parser.ParseQuery(c.Request.URL.Query(), "data_retribusi")
if err != nil {
@@ -495,6 +542,7 @@ func (h *RetribusiHandler) GetRetribusiDynamic(c *gin.Context) {
// @Failure 500 {object} models.ErrorResponse "Internal server error"
// @Router /api/v1/retribusis [post]
func (h *RetribusiHandler) CreateRetribusi(c *gin.Context) {
logger.Info("Request received", map[string]interface{}{"method": c.Request.Method, "path": c.Request.URL.Path})
var req retribusi.RetribusiCreateRequest
if err := c.ShouldBindJSON(&req); err != nil {
h.respondError(c, "Invalid request body", err, http.StatusBadRequest)
@@ -599,6 +647,7 @@ func (h *RetribusiHandler) CreateRetribusi(c *gin.Context) {
// @Failure 500 {object} models.ErrorResponse "Internal server error"
// @Router /api/v1/retribusi/{id} [put]
func (h *RetribusiHandler) UpdateRetribusi(c *gin.Context) {
logger.Info("Request received", map[string]interface{}{"method": c.Request.Method, "path": c.Request.URL.Path})
id := c.Param("id")
if _, err := uuid.Parse(id); err != nil {
h.respondError(c, "Invalid ID format", err, http.StatusBadRequest)
@@ -748,6 +797,7 @@ func (h *RetribusiHandler) UpdateRetribusi(c *gin.Context) {
// @Failure 500 {object} models.ErrorResponse "Internal server error"
// @Router /api/v1/retribusi/{id} [delete]
func (h *RetribusiHandler) DeleteRetribusi(c *gin.Context) {
logger.Info("Request received", map[string]interface{}{"method": c.Request.Method, "path": c.Request.URL.Path})
id := c.Param("id")
if _, err := uuid.Parse(id); err != nil {
h.respondError(c, "Invalid ID format", err, http.StatusBadRequest)
@@ -843,6 +893,7 @@ func (h *RetribusiHandler) DeleteRetribusi(c *gin.Context) {
// @Failure 500 {object} models.ErrorResponse "Internal server error"
// @Router /api/v1/retribusis/stats [get]
func (h *RetribusiHandler) GetRetribusiStats(c *gin.Context) {
logger.Info("Request received", map[string]interface{}{"method": c.Request.Method, "path": c.Request.URL.Path})
// CHANGE: Try ambil dari cache terlebih dahulu
cacheKey := fmt.Sprintf("retribusi:stats:%s", c.Query("status"))
if cachedData, found := h.cache.Get(cacheKey); found {
@@ -898,6 +949,19 @@ func (h *RetribusiHandler) GetRetribusiStats(c *gin.Context) {
})
}
// GetWelcome godoc
// @Summary Get welcome message
// @Description Returns a welcome message and logs the request
// @Tags Retribusi
// @Accept json
// @Produce json
// @Success 200 {object} map[string]string "Welcome message"
// @Router /api/v1/retribusis/welcome [get]
func (h *RetribusiHandler) GetWelcome(c *gin.Context) {
logger.Info("Request received", map[string]interface{}{"method": c.Request.Method, "path": c.Request.URL.Path})
c.JSON(http.StatusOK, gin.H{"message": "Welcome to the Retribusi API Service!"})
}
// =============================================================================
// HELPER FUNCTIONS
// =============================================================================