teg/backend/routes.go
2026-06-09 14:26:35 +02:00

153 lines
7.7 KiB
Go

// backend\routes.go
package main
import (
"net/http"
)
func (s *Server) Routes() http.Handler {
mux := http.NewServeMux()
mux.HandleFunc("GET /health", s.handleHealth)
mux.HandleFunc("POST /auth/register", s.handleRegister)
mux.HandleFunc("POST /auth/login", s.handleLogin)
mux.HandleFunc("POST /auth/logout", s.handleLogout)
mux.HandleFunc("GET /auth/me", s.requireAuth(s.handleMe))
mux.HandleFunc("GET /settings/sessions", s.requireAuth(s.handleListUserSessions))
mux.HandleFunc("DELETE /settings/sessions/{id}", s.requireAuth(s.handleRevokeUserSession))
mux.HandleFunc("PUT /settings/account", s.requireAuth(s.handleUpdateSettingsAccount))
mux.HandleFunc("PUT /settings/password", s.requireAuth(s.handleUpdateSettingsPassword))
mux.HandleFunc("POST /settings/logout-other-sessions", s.requireAuth(s.handleLogoutOtherSessions))
mux.HandleFunc("DELETE /settings/account", s.requireAuth(s.handleDeleteOwnAccount))
mux.HandleFunc("GET /settings/notifications/preferences", s.requireAuth(s.handleGetNotificationPreferences))
mux.HandleFunc("PUT /settings/notifications/preferences", s.requireAuth(s.handleUpdateNotificationPreferences))
mux.HandleFunc("POST /feedback", s.requireAuth(s.handleCreateFeedback))
mux.HandleFunc("GET /devices", s.requireAuth(s.handleListDevices))
mux.HandleFunc("POST /devices", s.requireAuth(s.handleCreateDevice))
mux.HandleFunc("PUT /devices/{id}", s.requireAuth(s.handleUpdateDevice))
mux.HandleFunc("GET /devices/{id}/history", s.requireAuth(s.handleListDeviceHistory))
mux.HandleFunc("POST /devices/{id}/history", s.requireAuth(s.handleCreateDeviceJournalEntry))
mux.HandleFunc("PUT /devices/{id}/history/{historyId}", s.requireAuth(s.handleUpdateDeviceJournalEntry))
mux.HandleFunc("PATCH /devices/{id}/milestone", s.requireAuth(s.handleUpdateMilestoneHardware))
mux.HandleFunc(
"PATCH /devices/{id}/milestone-child/{childId}",
s.requireAuth(s.handleUpdateMilestoneChildDevice),
)
mux.HandleFunc(
"GET /devices/{id}/milestone-cameras/{childId}",
s.requireAuth(s.handleGetMilestoneCameraDetails),
)
mux.HandleFunc(
"PATCH /devices/{id}/milestone-cameras/{childId}",
s.requireAuth(s.handleUpdateMilestoneCameraDetails),
)
mux.HandleFunc("GET /devices/firmware-check", s.requireAuth(s.handleGetCameraFirmwareCheckState))
mux.HandleFunc("POST /devices/firmware-check", s.requireAuth(s.handleCheckCameraFirmware))
mux.HandleFunc("GET /device-lookups", s.handleDeviceLookups)
mux.HandleFunc("POST /device-manufacturers", s.handleCreateDeviceManufacturer)
mux.HandleFunc("POST /device-locations", s.handleCreateDeviceLocation)
mux.HandleFunc("GET /operations", s.requireAuth(s.requireRight("operations:read", s.handleListOperations)))
mux.HandleFunc("POST /operations", s.requireAuth(s.requireRight("operations:write", s.handleCreateOperation)))
mux.HandleFunc("PUT /operations/{id}", s.requireAuth(s.requireRight("operations:write", s.handleUpdateOperation)))
mux.HandleFunc("GET /operations/{id}/history", s.requireAuth(s.handleListOperationHistory))
mux.HandleFunc("POST /operations/{id}/history", s.requireAuth(s.handleCreateOperationJournalEntry))
mux.HandleFunc("PUT /operations/{id}/history/{historyId}", s.requireAuth(s.handleUpdateOperationJournalEntry))
mux.HandleFunc("POST /operations/{id}/journal/read", s.requireAuth(s.handleMarkOperationJournalRead))
mux.HandleFunc("GET /operations/journal-unread", s.requireAuth(s.handleListUnreadOperationJournals))
mux.HandleFunc("GET /operations/assignees", s.requireAuth(s.requireRight("operations:read", s.handleListOperationAssignees)))
mux.HandleFunc("GET /search", s.requireAuth(s.handleGlobalSearch))
mux.HandleFunc("GET /address-search", s.requireAuth(s.handleAddressSearch))
mux.HandleFunc("GET /address-reverse", s.requireAuth(s.handleAddressReverse))
mux.HandleFunc("GET /notifications", s.requireAuth(s.handleListNotifications))
mux.HandleFunc("POST /notifications/{id}/read", s.requireAuth(s.handleMarkNotificationRead))
mux.HandleFunc("POST /notifications/read-all", s.requireAuth(s.handleMarkAllNotificationsRead))
mux.HandleFunc("GET /events", s.requireAuth(s.handleNotificationEvents))
mux.HandleFunc("GET /dashboard/operation-changes", s.requireAuth(s.requireRight("operations:read", s.handleDashboardOperationChanges)))
mux.HandleFunc("GET /dashboard/settings", s.requireAuth(s.handleGetDashboardSettings))
mux.HandleFunc("PUT /dashboard/settings", s.requireAuth(s.handleUpdateDashboardSettings))
mux.HandleFunc("GET /dashboard/widgets", s.requireAuth(s.handleListDashboardWidgets))
mux.HandleFunc("POST /dashboard/widgets", s.requireAuth(s.handleCreateDashboardWidget))
mux.HandleFunc("PUT /dashboard/widgets/{id}", s.requireAuth(s.handleUpdateDashboardWidget))
mux.HandleFunc("DELETE /dashboard/widgets/{id}", s.requireAuth(s.handleDeleteDashboardWidget))
/* admin settings */
mux.HandleFunc("GET /admin/users", s.requireAuth(s.requireRight("users:read", s.handleAdminListUsers)))
mux.HandleFunc("POST /admin/users", s.requireAuth(s.requireRight("users:write", s.handleAdminCreateUser)))
mux.HandleFunc("PUT /admin/users/{id}", s.requireAuth(s.requireRight("users:write", s.handleAdminUpdateUser)))
mux.HandleFunc("GET /admin/user-units", s.requireAuth(s.requireRight("users:read", s.handleListUserUnits)))
mux.HandleFunc("POST /admin/user-units", s.requireAuth(s.requireRight("users:write", s.handleCreateUserUnit)))
mux.HandleFunc("GET /admin/teams", s.requireAuth(s.requireRight("teams:read", s.handleAdminListTeams)))
mux.HandleFunc("POST /admin/teams", s.requireAuth(s.requireRight("teams:write", s.handleAdminCreateTeam)))
mux.HandleFunc("PUT /admin/teams/{id}", s.requireAuth(s.requireRight("teams:write", s.handleAdminUpdateTeam)))
mux.HandleFunc("GET /admin/feedback", s.requireAuth(s.requireRight("administration:read", s.handleListFeedback)))
mux.HandleFunc("DELETE /admin/feedback/{id}", s.requireAuth(s.requireRight("administration:write", s.handleDeleteFeedback)))
/* milestone settings */
mux.HandleFunc("GET /admin/milestone", s.requireAuth(s.requireRight("administration:read", s.handleGetMilestoneSettings)))
mux.HandleFunc("PUT /admin/milestone", s.requireAuth(s.requireRight("administration:write", s.handleUpdateMilestoneSettings)))
mux.HandleFunc("POST /admin/milestone/token", s.requireAuth(s.requireRight("administration:write", s.handleFetchMilestoneToken)))
mux.HandleFunc("POST /admin/milestone/token/stream", s.requireAuth(s.requireRight("administration:write", s.handleFetchMilestoneTokenStream)))
mux.HandleFunc(
"GET /admin/server-folders",
s.requireAuth(s.requireRight("administration:read", s.handleProxyListServerFolders)),
)
mux.HandleFunc(
"POST /admin/server-folders",
s.requireAuth(s.requireRight("administration:write", s.handleProxyCreateServerFolder)),
)
mux.HandleFunc(
"GET /admin/milestone/storages",
s.requireAuth(s.requireRight("administration:read", s.handleListMilestoneStorages)),
)
mux.HandleFunc(
"POST /admin/milestone/storages",
s.requireAuth(s.requireRight("administration:write", s.handleCreateMilestoneStorageWithArchive)),
)
mux.HandleFunc(
"POST /admin/milestone/storages/{id}/archive-storages",
s.requireAuth(s.requireRight("administration:write", s.handleCreateMilestoneArchiveStorage)),
)
mux.HandleFunc(
"POST /admin/milestone/storages/{id}/archive-storages/auto",
s.requireAuth(s.requireRight("administration:write", s.handleCreateMilestoneAutoArchiveStorage)),
)
mux.HandleFunc(
"PATCH /admin/milestone/archive-storages/{id}",
s.requireAuth(s.requireRight("administration:write", s.handleUpdateMilestoneArchiveStorage)),
)
mux.HandleFunc(
"GET /admin/milestone/storage-information/{id}",
s.requireAuth(s.requireRight("administration:read", s.handleGetMilestoneStorageInformation)),
)
return s.cors(mux)
}