58 lines
2.0 KiB
Go
58 lines
2.0 KiB
Go
package client_approval_settings
|
|
|
|
import (
|
|
"web-medols-be/app/module/client_approval_settings/controller"
|
|
"web-medols-be/app/module/client_approval_settings/repository"
|
|
"web-medols-be/app/module/client_approval_settings/service"
|
|
|
|
"github.com/gofiber/fiber/v2"
|
|
"go.uber.org/fx"
|
|
)
|
|
|
|
// ClientApprovalSettingsRouter struct of ClientApprovalSettingsRouter
|
|
type ClientApprovalSettingsRouter struct {
|
|
App fiber.Router
|
|
Controller controller.ClientApprovalSettingsController
|
|
}
|
|
|
|
// NewClientApprovalSettingsModule register bulky of ClientApprovalSettings module
|
|
var NewClientApprovalSettingsModule = fx.Options(
|
|
fx.Provide(repository.NewClientApprovalSettingsRepository),
|
|
fx.Provide(service.NewClientApprovalSettingsService),
|
|
fx.Provide(controller.NewClientApprovalSettingsController),
|
|
fx.Provide(NewClientApprovalSettingsRouter),
|
|
)
|
|
|
|
// NewClientApprovalSettingsRouter create new ClientApprovalSettingsRouter
|
|
func NewClientApprovalSettingsRouter(
|
|
app *fiber.App,
|
|
controller controller.ClientApprovalSettingsController,
|
|
) *ClientApprovalSettingsRouter {
|
|
return &ClientApprovalSettingsRouter{
|
|
App: app,
|
|
Controller: controller,
|
|
}
|
|
}
|
|
|
|
// RegisterClientApprovalSettingsRoutes register routes of ClientApprovalSettings
|
|
func (r *ClientApprovalSettingsRouter) RegisterClientApprovalSettingsRoutes() {
|
|
// Group routes under /api/v1/client-approval-settings
|
|
api := r.App.Group("/api/v1/client-approval-settings")
|
|
|
|
// Basic CRUD routes
|
|
api.Get("/", r.Controller.GetSettings)
|
|
api.Put("/", r.Controller.UpdateSettings)
|
|
api.Delete("/", r.Controller.DeleteSettings)
|
|
|
|
// Approval management routes
|
|
api.Post("/toggle-approval", r.Controller.ToggleApproval)
|
|
api.Post("/enable-approval", r.Controller.EnableApproval)
|
|
api.Post("/disable-approval", r.Controller.DisableApproval)
|
|
api.Put("/default-workflow", r.Controller.SetDefaultWorkflow)
|
|
|
|
// Exemption management routes
|
|
api.Post("/exempt-users", r.Controller.ManageExemptUsers)
|
|
api.Post("/exempt-roles", r.Controller.ManageExemptRoles)
|
|
api.Post("/exempt-categories", r.Controller.ManageExemptCategories)
|
|
}
|