medol-be/app/module/client_approval_settings/client_approval_settings.mo...

58 lines
2.0 KiB
Go
Raw Normal View History

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