Update Toll Generate

This commit is contained in:
2025-10-16 08:40:04 +07:00
parent 44facf78bb
commit 21cc6aacdb
7 changed files with 7903 additions and 947 deletions

View File

@@ -345,6 +345,10 @@ go run tools/general/generate-handler.go retribusi get post put delete
# Generate dengan fitur advanced
go run tools/general/generate-handler.go retribusi get post put delete dynamic search stats
# Config
go run tools/general/generate-handler.go --config tools/general/services-config.yaml --verbose
```
***

View File

@@ -97,7 +97,6 @@ func RegisterRoutes(cfg *config.Config) *gin.Engine {
// =============================================================================
// PUBLISHED ROUTES
// =============================================================================
// Retribusi endpoints with
retribusiHandler := retribusiHandlers.NewRetribusiHandler()
@@ -128,24 +127,24 @@ func RegisterRoutes(cfg *config.Config) *gin.Engine {
protected.Use(middleware.ConfigurableAuthMiddleware(cfg))
// Protected retribusi endpoints (Authentication Required)
protectedRetribusiGroup := protected.Group("/retribusi")
{
protectedRetribusiGroup.GET("", retribusiHandler.GetRetribusi)
protectedRetribusiGroup.GET("/dynamic", retribusiHandler.GetRetribusiDynamic)
protectedRetribusiGroup.GET("/search", retribusiHandler.SearchRetribusiAdvanced)
protectedRetribusiGroup.GET("/id/:id", retribusiHandler.GetRetribusiByID)
protectedRetribusiGroup.POST("", func(c *gin.Context) {
retribusiHandler.CreateRetribusi(c)
})
// protectedRetribusiGroup := protected.Group("/retribusi")
// {
// protectedRetribusiGroup.GET("", retribusiHandler.GetRetribusi)
// protectedRetribusiGroup.GET("/dynamic", retribusiHandler.GetRetribusiDynamic)
// protectedRetribusiGroup.GET("/search", retribusiHandler.SearchRetribusiAdvanced)
// protectedRetribusiGroup.GET("/id/:id", retribusiHandler.GetRetribusiByID)
// protectedRetribusiGroup.POST("", func(c *gin.Context) {
// retribusiHandler.CreateRetribusi(c)
// })
protectedRetribusiGroup.PUT("/id/:id", func(c *gin.Context) {
retribusiHandler.UpdateRetribusi(c)
})
// protectedRetribusiGroup.PUT("/id/:id", func(c *gin.Context) {
// retribusiHandler.UpdateRetribusi(c)
// })
protectedRetribusiGroup.DELETE("/id/:id", func(c *gin.Context) {
retribusiHandler.DeleteRetribusi(c)
})
}
// protectedRetribusiGroup.DELETE("/id/:id", func(c *gin.Context) {
// retribusiHandler.DeleteRetribusi(c)
// })
// }
return router
}

View File

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,166 @@
global:
module_name: "api-service"
output_dir: "internal/handlers"
enable_swagger: true
enable_logging: true
services:
vclaim:
name: "VClaim"
category: "vclaim"
package: "vclaim"
description: "BPJS VClaim service for eligibility and SEP management"
base_url: "https://apijkn.bpjs-kesehatan.go.id/vclaim-rest"
timeout: 30
retry_count: 3
endpoints:
peserta:
description: "Participant eligibility information"
handler_folder: "peserta"
handler_file: "peserta.go"
handler_name: "Peserta"
functions:
bynokartu:
methods: ["GET"]
path: "/peserta/:nokartu"
get_routes: "/nokartu/:nokartu"
# post_routes: "/Peserta/nokartu/:nokartu"
# put_routes: "/Peserta/nokartu/:nokartu"
# delete_routes: "/Peserta/nokartu/:nokartu"
get_path: "/Peserta/nokartu/:nokartu/tglSEP/:tglSEP"
# post_path: "/peserta"
# put_path: "/peserta/:nokartu"
# delete_path: "/peserta/:nokartu"
model: "PesertaRequest"
response_model: "PesertaResponse"
request_model: "RujukanRequest"
description: "Get participant eligibility information by card number"
summary: "Get Participant Info by No Kartu"
tags: ["Peserta"]
require_auth: true
cache_enabled: true
enable_database: true # jika menggunakan database
cache_ttl: 300
bynik:
methods: ["GET"]
path: "/peserta/nik/:nik"
get_routes: "/nik/:nik"
# post_routes: "/Peserta/nik/:nik"
# put_routes: "/Peserta/nik/:nik"
# delete_routes: "/Peserta/nik/:nik"
get_path: "/Peserta/nik/:nik/tglSEP/:tglSEP"
# post_path: "/peserta"
# put_path: "/peserta/nik/:nik"
# delete_path: "/peserta/nik/:nik"
model: "PesertaRequest"
response_model: "PesertaResponse"
request_model: "PesertaRequest"
description: "Get participant eligibility information by NIK"
summary: "Get Participant Info by NIK"
tags: ["Peserta"]
require_auth: true
cache_enabled: true
enable_database: true # jika menggunakan database
cache_ttl: 300
rujukan:
description: "Rujukan management endpoints"
handler_folder: "rujukan"
handler_file: "rujukan.go"
handler_name: "Rujukan"
functions:
rujukan:
methods: ["POST", "PUT", "DELETE"]
path: "/Rujukan"
# get_routes: "/Rujukan/:norujukan"
post_routes: "/Rujukan/:norujukan"
put_routes: "/Rujukan/:norujukan"
delete_routes: "/Rujukan/:norujukan"
# get_path: "/Rujukan/:norujukan"
post_path: "/Rujukan"
put_path: "/Rujukan/:norujukan"
delete_path: "/Rujukan/:norujukan"
model: "RujukanRequest"
response_model: "RujukanResponse"
request_model: "RujukanRequest"
description: "Manage rujukan"
summary: "Rujukan Management"
tags: ["Rujukan"]
require_auth: true
cache_enabled: true
enable_database: true # jika menggunakan database
cache_ttl: 180
rujukanbalik:
methods: ["POST", "PUT", "DELETE"]
path: "/Rujukanbalik"
# get_routes: "/Rujukanbalik/:norujukan"
post_routes: "/Rujukanbalik/:norujukan"
put_routes: "/Rujukanbalik/:norujukan"
delete_routes: "/Rujukanbalik/:norujukan"
# get_path: "/Rujukanbalik/:norujukan"
post_path: "/Rujukanbalik"
put_path: "/Rujukanbalik/:norujukan"
delete_path: "/Rujukanbalik/:norujukan"
model: "RujukanRequest"
response_model: "RujukanResponse"
request_model: "RujukanRequest"
description: "Manage rujukan"
summary: "Rujukan Management"
tags: ["Rujukan"]
require_auth: true
cache_enabled: true
enable_database: true # jika menggunakan database
cache_ttl: 180
search:
description: "Search for rujukan endpoints"
handler_folder: "rujukan"
handler_file: "search.go"
handler_name: "Search"
functions:
bynorujukan:
methods: ["GET"]
path: "/Rujukan/:norujukan"
get_routes: "/bynorujukan/:norujukan"
# post_routes: "/bynorujukan/:norujukan"
# put_routes: "/bynorujukan/:norujukan"
# delete_routes: "/bynorujukan/:norujukan"
get_path: "/Rujukan/:norujukan"
# post_path: "/Rujukan"
# put_path: "/Rujukan/:norujukan"
# delete_path: "/Rujukan/:norujukan"
model: "RujukanRequest"
response_model: "RujukanResponse"
request_model: "RujukanRequest"
description: "Get rujukan by nomor rujukan"
summary: "Rujukan Management"
tags: ["Rujukan"]
require_auth: true
cache_enabled: true
enable_database: true # jika menggunakan database
cache_ttl: 300
bynokartu:
methods: ["GET"]
path: "/Rujukan/:nokartu"
get_routes: "/bynokartu/:nokartu"
# post_routes: "/bynokartu/:nokartu"
# put_routes: "/bynokartu/:nokartu"
# delete_routes: "/bynokartu/:nokartu"
get_path: "/Rujukan/:nokartu"
# post_path: "/Rujukan"
# put_path: "/Rujukan/:nokartu"
# delete_path: "/Rujukan/:nokartu"
model: "RujukanRequest"
response_model: "RujukanResponse"
request_model: "RujukanRequest"
description: "Get rujukan by card number"
summary: "Rujukan Management"
tags: ["Rujukan"]
require_auth: true
cache_enabled: true
enable_database: true # jika menggunakan database
cache_ttl: 300

View File

File diff suppressed because it is too large Load Diff

View File

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,250 @@
global:
module_name: "api-service"
output_dir: "internal/handlers"
enable_swagger: true
enable_logging: true
services:
retribusi:
name: "Retribusi"
category: "retribusi"
package: "retribusi"
description: "Retribusi service for tariff and billing management"
base_url: ""
timeout: 30
retry_count: 3
endpoints:
# retribusi:
# description: "Retribusi tariff management"
# handler_folder: "retribusi"
# handler_file: "retribusi.go"
# handler_name: "Retribusi"
# table_name: "data_retribusi"
# functions:
# list:
# methods: ["GET"]
# path: "/"
# get_routes: "/"
# get_path: "/"
# model: "Retribusi"
# response_model: "RetribusiGetResponse"
# description: "Get retribusi list with pagination and filters"
# summary: "Get Retribusi List"
# tags: ["Retribusi"]
# require_auth: true
# cache_enabled: true
# enable_database: true
# cache_ttl: 300
# has_pagination: true
# has_filter: true
# has_search: true
# has_stats: true
# get:
# methods: ["GET"]
# path: "/:id"
# get_routes: "/:id"
# get_path: "/:id"
# model: "Retribusi"
# response_model: "RetribusiGetByIDResponse"
# description: "Get retribusi by ID"
# summary: "Get Retribusi by ID"
# tags: ["Retribusi"]
# require_auth: true
# cache_enabled: true
# enable_database: true
# cache_ttl: 300
# dynamic:
# methods: ["GET"]
# path: "/dynamic"
# get_routes: "/dynamic"
# get_path: "/dynamic"
# model: "Retribusi"
# response_model: "RetribusiGetResponse"
# description: "Get retribusi with dynamic filtering"
# summary: "Get Retribusi Dynamic"
# tags: ["Retribusi"]
# require_auth: true
# cache_enabled: true
# enable_database: true
# cache_ttl: 300
# has_dynamic: true
# search:
# methods: ["GET"]
# path: "/search"
# get_routes: "/search"
# get_path: "/search"
# model: "Retribusi"
# response_model: "RetribusiGetResponse"
# description: "Search retribusi"
# summary: "Search Retribusi"
# tags: ["Retribusi"]
# require_auth: true
# cache_enabled: true
# enable_database: true
# cache_ttl: 300
# has_search: true
# create:
# methods: ["POST"]
# path: "/"
# post_routes: "/"
# post_path: "/"
# model: "RetribusiCreateRequest"
# response_model: "RetribusiCreateResponse"
# request_model: "RetribusiCreateRequest"
# description: "Create new retribusi"
# summary: "Create Retribusi"
# tags: ["Retribusi"]
# require_auth: true
# cache_enabled: false
# enable_database: true
# cache_ttl: 0
# update:
# methods: ["PUT"]
# path: "/:id"
# put_routes: "/:id"
# put_path: "/:id"
# model: "RetribusiUpdateRequest"
# response_model: "RetribusiUpdateResponse"
# request_model: "RetribusiUpdateRequest"
# description: "Update retribusi"
# summary: "Update Retribusi"
# tags: ["Retribusi"]
# require_auth: true
# cache_enabled: false
# enable_database: true
# cache_ttl: 0
# delete:
# methods: ["DELETE"]
# path: "/:id"
# delete_routes: "/:id"
# delete_path: "/:id"
# model: "Retribusi"
# response_model: "RetribusiDeleteResponse"
# description: "Delete retribusi"
# summary: "Delete Retribusi"
# tags: ["Retribusi"]
# require_auth: true
# cache_enabled: false
# enable_database: true
# cache_ttl: 0
# stats:
# methods: ["GET"]
# path: "/stats"
# get_routes: "/stats"
# get_path: "/stats"
# model: "AggregateData"
# response_model: "AggregateData"
# description: "Get retribusi statistics"
# summary: "Get Retribusi Stats"
# tags: ["Retribusi"]
# require_auth: true
# cache_enabled: true
# enable_database: true
# cache_ttl: 180
# has_stats: true
# Example of another service
user:
name: "User"
category: "user"
package: "user"
description: "User management service"
base_url: ""
timeout: 30
retry_count: 3
endpoints:
user:
description: "User management endpoints"
handler_folder: "retribusi"
handler_file: "user.go"
handler_name: "User"
table_name: "data_user"
functions:
list:
methods: ["GET"]
path: "/"
get_routes: "/"
get_path: "/"
model: "User"
response_model: "UserGetResponse"
description: "Get user list with pagination"
summary: "Get User List"
tags: ["User"]
require_auth: true
cache_enabled: true
enable_database: true
cache_ttl: 300
has_pagination: true
has_filter: true
has_search: true
get:
methods: ["GET"]
path: "/:id"
get_routes: "/:id"
get_path: "/:id"
model: "User"
response_model: "UserGetByIDResponse"
description: "Get user by ID"
summary: "Get User by ID"
tags: ["User"]
require_auth: true
cache_enabled: true
enable_database: true
cache_ttl: 300
create:
methods: ["POST"]
path: "/"
post_routes: "/"
post_path: "/"
model: "UserCreateRequest"
response_model: "UserCreateResponse"
request_model: "UserCreateRequest"
description: "Create new user"
summary: "Create User"
tags: ["User"]
require_auth: true
cache_enabled: false
enable_database: true
cache_ttl: 0
update:
methods: ["PUT"]
path: "/:id"
put_routes: "/:id"
put_path: "/:id"
model: "UserUpdateRequest"
response_model: "UserUpdateResponse"
request_model: "UserUpdateRequest"
description: "Update user"
summary: "Update User"
tags: ["User"]
require_auth: true
cache_enabled: false
enable_database: true
cache_ttl: 0
delete:
methods: ["DELETE"]
path: "/:id"
delete_routes: "/:id"
delete_path: "/:id"
model: "User"
response_model: "UserDeleteResponse"
description: "Delete user"
summary: "Delete User"
tags: ["User"]
require_auth: true
cache_enabled: false
enable_database: true
cache_ttl: 0