Spaces:
Sleeping
Sleeping
| package admin | |
| import ( | |
| "github.com/go-chi/chi/v5" | |
| "ds2api/internal/chathistory" | |
| adminaccounts "ds2api/internal/httpapi/admin/accounts" | |
| adminauth "ds2api/internal/httpapi/admin/auth" | |
| adminconfig "ds2api/internal/httpapi/admin/configmgmt" | |
| admindevcapture "ds2api/internal/httpapi/admin/devcapture" | |
| adminhistory "ds2api/internal/httpapi/admin/history" | |
| adminproxies "ds2api/internal/httpapi/admin/proxies" | |
| adminrawsamples "ds2api/internal/httpapi/admin/rawsamples" | |
| adminsettings "ds2api/internal/httpapi/admin/settings" | |
| adminshared "ds2api/internal/httpapi/admin/shared" | |
| adminvercel "ds2api/internal/httpapi/admin/vercel" | |
| adminversion "ds2api/internal/httpapi/admin/version" | |
| ) | |
| type Handler struct { | |
| Store adminshared.ConfigStore | |
| Pool adminshared.PoolController | |
| DS adminshared.DeepSeekCaller | |
| OpenAI adminshared.OpenAIChatCaller | |
| ChatHistory *chathistory.Store | |
| } | |
| func RegisterRoutes(r chi.Router, h *Handler) { | |
| deps := adminsharedDeps(h) | |
| authHandler := &adminauth.Handler{Store: deps.Store, Pool: deps.Pool, DS: deps.DS, OpenAI: deps.OpenAI, ChatHistory: deps.ChatHistory} | |
| accountsHandler := &adminaccounts.Handler{Store: deps.Store, Pool: deps.Pool, DS: deps.DS, OpenAI: deps.OpenAI, ChatHistory: deps.ChatHistory} | |
| configHandler := &adminconfig.Handler{Store: deps.Store, Pool: deps.Pool, DS: deps.DS, OpenAI: deps.OpenAI, ChatHistory: deps.ChatHistory} | |
| settingsHandler := &adminsettings.Handler{Store: deps.Store, Pool: deps.Pool, DS: deps.DS, OpenAI: deps.OpenAI, ChatHistory: deps.ChatHistory} | |
| proxiesHandler := &adminproxies.Handler{Store: deps.Store, Pool: deps.Pool, DS: deps.DS, OpenAI: deps.OpenAI, ChatHistory: deps.ChatHistory} | |
| rawSamplesHandler := &adminrawsamples.Handler{Store: deps.Store, Pool: deps.Pool, DS: deps.DS, OpenAI: deps.OpenAI, ChatHistory: deps.ChatHistory} | |
| vercelHandler := &adminvercel.Handler{Store: deps.Store, Pool: deps.Pool, DS: deps.DS, OpenAI: deps.OpenAI, ChatHistory: deps.ChatHistory} | |
| historyHandler := &adminhistory.Handler{Store: deps.Store, Pool: deps.Pool, DS: deps.DS, OpenAI: deps.OpenAI, ChatHistory: deps.ChatHistory} | |
| devCaptureHandler := &admindevcapture.Handler{Store: deps.Store, Pool: deps.Pool, DS: deps.DS, OpenAI: deps.OpenAI, ChatHistory: deps.ChatHistory} | |
| versionHandler := &adminversion.Handler{Store: deps.Store, Pool: deps.Pool, DS: deps.DS, OpenAI: deps.OpenAI, ChatHistory: deps.ChatHistory} | |
| adminauth.RegisterPublicRoutes(r, authHandler) | |
| r.Group(func(pr chi.Router) { | |
| pr.Use(authHandler.RequireAdmin) | |
| adminauth.RegisterProtectedRoutes(pr, authHandler) | |
| adminconfig.RegisterRoutes(pr, configHandler) | |
| adminsettings.RegisterRoutes(pr, settingsHandler) | |
| adminproxies.RegisterRoutes(pr, proxiesHandler) | |
| adminaccounts.RegisterRoutes(pr, accountsHandler) | |
| adminrawsamples.RegisterRoutes(pr, rawSamplesHandler) | |
| adminvercel.RegisterRoutes(pr, vercelHandler) | |
| admindevcapture.RegisterRoutes(pr, devCaptureHandler) | |
| adminhistory.RegisterRoutes(pr, historyHandler) | |
| adminversion.RegisterRoutes(pr, versionHandler) | |
| }) | |
| } | |
| func adminsharedDeps(h *Handler) adminsharedDepsValue { | |
| if h == nil { | |
| return adminsharedDepsValue{} | |
| } | |
| return adminsharedDepsValue{Store: h.Store, Pool: h.Pool, DS: h.DS, OpenAI: h.OpenAI, ChatHistory: h.ChatHistory} | |
| } | |
| type adminsharedDepsValue struct { | |
| Store adminshared.ConfigStore | |
| Pool adminshared.PoolController | |
| DS adminshared.DeepSeekCaller | |
| OpenAI adminshared.OpenAIChatCaller | |
| ChatHistory *chathistory.Store | |
| } | |