141 lines
7.4 KiB
Go
141 lines
7.4 KiB
Go
package api
|
|
|
|
import (
|
|
"github.com/gofiber/fiber/v2"
|
|
"github.com/valyala/fasthttp/fasthttpadaptor"
|
|
|
|
samlauth "wucher/internal/auth"
|
|
"wucher/internal/service"
|
|
"wucher/internal/shared/pkg/metrics"
|
|
"wucher/internal/transport/http/handlers"
|
|
"wucher/internal/transport/http/middleware"
|
|
)
|
|
|
|
var metricsHandler = fasthttpadaptor.NewFastHTTPHandler(metrics.PromHTTPHandler())
|
|
|
|
type RouteServices struct {
|
|
Auth *service.AuthService
|
|
Audit *service.AuditLogService
|
|
WOPI *service.WOPIService
|
|
}
|
|
|
|
type RouteHandlers struct {
|
|
User *handlers.UserHandler
|
|
Contact *handlers.ContactHandler
|
|
Health *handlers.HealthHandler
|
|
BuildInfo *handlers.BuildInfoHandler
|
|
Auth *handlers.AuthHandler
|
|
Role *handlers.RoleHandler
|
|
Helicopter *handlers.HelicopterHandler
|
|
HelicopterUsage *handlers.HelicopterUsageHandler
|
|
HelicopterFile *handlers.HelicopterFileHandler
|
|
Flight *handlers.FlightHandler
|
|
FlightData *handlers.FlightDataHandler
|
|
Mission *handlers.MissionHandler
|
|
FMReport *handlers.FMReportHandler
|
|
ReserveAc *handlers.ReserveAcHandler
|
|
Takeover *handlers.TakeoverHandler
|
|
OtherPerson *handlers.OtherPersonHandler
|
|
Facility *handlers.FacilityHandler
|
|
Base *handlers.BaseHandler
|
|
Medicine *handlers.MedicineHandler
|
|
Vocation *handlers.VocationHandler
|
|
Opc *handlers.OpcHandler
|
|
ForcesPresent *handlers.ForcesPresentHandler
|
|
Hospital *handlers.HospitalHandler
|
|
HealthInsuranceCompanies *handlers.HealthInsuranceCompaniesHandler
|
|
FederalState *handlers.FederalStateHandler
|
|
ICAO *handlers.ICAOHandler
|
|
Land *handlers.LandHandler
|
|
MasterSettings *handlers.MasterSettingsHandler
|
|
Branding *handlers.BrandingHandler
|
|
FileManagerFolder *handlers.FileManagerFolderHandler
|
|
FileManagerFile *handlers.FileManagerFileHandler
|
|
FileManagerAttachment *handlers.FileManagerAttachmentHandler
|
|
FileManagerEvents *handlers.FileManagerEventsHandler
|
|
HelicopterFileEvents *handlers.HelicopterFileEventsHandler
|
|
DutyRoster *handlers.DutyRosterHandler
|
|
AirRescuerChecklist *handlers.AirRescuerChecklistHandler
|
|
InsurancePatientData *handlers.InsurancePatientDataHandler
|
|
PatientData *handlers.PatientDataHandler
|
|
HEMSOperationalData *handlers.HEMSOperationalDataHandler
|
|
HEMSOperationCategory *handlers.HEMSOperationCategoryHandler
|
|
HEMSOperation *handlers.HEMSOperationHandler
|
|
Complaint *handlers.ComplaintHandler
|
|
EASARelease *handlers.EASAReleaseHandler
|
|
ActionSignoff *handlers.ActionSignoffHandler
|
|
MCF *handlers.MCFHandler
|
|
DUL *handlers.DULHandler
|
|
FleetStatus *handlers.FleetStatusHandler
|
|
SAMLAuth *samlauth.Handler
|
|
}
|
|
|
|
type RouteDependencies struct {
|
|
Handlers RouteHandlers
|
|
Services RouteServices
|
|
}
|
|
|
|
func RegisterRoutes(app *fiber.App, deps RouteDependencies) {
|
|
h := deps.Handlers
|
|
s := deps.Services
|
|
|
|
app.Get("/health", h.Health.Handle)
|
|
app.Get("/version", h.BuildInfo.Handle)
|
|
app.Get("/api/version", h.BuildInfo.Handle)
|
|
app.Get("/api/build-info", h.BuildInfo.Handle)
|
|
app.Get("/metrics", func(c *fiber.Ctx) error {
|
|
metricsHandler(c.Context())
|
|
return nil
|
|
})
|
|
|
|
api := app.Group("/api")
|
|
api.Use(AuditMiddleware(s.Audit))
|
|
v1 := api.Group("/v1")
|
|
|
|
registerAuthRoutes(v1, h.Auth, s.Auth, h.SAMLAuth)
|
|
registerUserRoutes(v1, h.User, h.FileManagerEvents, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerContactRoutes(v1, h.Contact, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerRoleRoutes(v1, h.Role, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerHelicopterRoutes(v1, h.Helicopter, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerHelicopterUsageRoutes(v1, h.HelicopterUsage, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerHelicopterFileRoutes(v1, h.HelicopterFile, h.HelicopterFileEvents, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerFlightRoutes(v1, h.Flight, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerFlightDataRoutes(v1, h.FlightData, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerMissionRoutes(v1, h.Mission, h.FileManagerEvents, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerFMReportRoutes(v1, h.FMReport, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerReserveAcRoutes(v1, h.ReserveAc, h.Takeover, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerTakeoverRoutes(v1, h.Takeover, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerOtherPersonRoutes(v1, h.OtherPerson, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerLastFlightsInspectionRoutes(v1, h.ReserveAc, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerFacilityRoutes(v1, h.Facility, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerBaseRoutes(v1, h.Base, h.FileManagerEvents, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerMedicineRoutes(v1, h.Medicine, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerVocationRoutes(v1, h.Vocation, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerOpcRoutes(v1, h.Opc, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerForcesPresentRoutes(v1, h.ForcesPresent, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerHospitalRoutes(v1, h.Hospital, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerHealthInsuranceCompaniesRoutes(v1, h.HealthInsuranceCompanies, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerFederalStateRoutes(v1, h.FederalState, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerICAORoutes(v1, h.ICAO, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerLandRoutes(v1, h.Land, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerMasterSettingsRoutes(v1, h.MasterSettings, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerBrandingRoutes(v1, h.Branding)
|
|
registerFileManagerRoutes(v1, h.FileManagerFolder, h.FileManagerFile, h.FileManagerAttachment, h.FileManagerEvents, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerWOPIRoutes(app, h.Takeover, s.WOPI)
|
|
registerDutyRosterRoutes(v1, h.DutyRoster, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerAirRescuerChecklistRoutes(v1, h.AirRescuerChecklist, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerInsurancePatientDataRoutes(v1, h.InsurancePatientData, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerPatientDataRoutes(v1, h.PatientData, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerHEMSOperationalDataRoutes(v1, h.HEMSOperationalData, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerHEMSOperationCategoryRoutes(v1, h.HEMSOperationCategory, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerHEMSOperationRoutes(v1, h.HEMSOperation, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerComplaintRoutes(v1, h.Complaint, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerEASAReleaseRoutes(v1, h.EASARelease, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerActionSignoffRoutes(v1, h.ActionSignoff, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerMCFRoutes(v1, h.MCF, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerDULRoutes(v1, h.DUL, h.FileManagerEvents, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerFleetStatusRoutes(v1, h.FleetStatus, middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerAuditRoutes(v1, handlers.NewAuditHandler(s.Audit), middleware.AuthRequired(s.Auth), s.Auth)
|
|
registerSwaggerRoutes(app)
|
|
}
|