Perbaikan Generate code
This commit is contained in:
No files matched your search
File diff suppressed because it is too large
Load diff
@@ -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
|
||||
// =============================================================================
|
||||
|
||||
Reference in New Issue
Block a user