handler.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package webapi
  2. import (
  3. "context"
  4. "fmt"
  5. "log/slog"
  6. "net/http"
  7. "github.com/mk6i/open-oscar-server/state"
  8. "github.com/mk6i/open-oscar-server/wire"
  9. )
  10. type Handler struct {
  11. AdminService AdminService
  12. AuthService AuthService
  13. BuddyListRegistry BuddyListRegistry
  14. BuddyService BuddyService
  15. ChatNavService ChatNavService
  16. ChatService ChatService
  17. CookieBaker CookieBaker
  18. DirSearchService DirSearchService
  19. ICBMService ICBMService
  20. LocateService LocateService
  21. Logger *slog.Logger
  22. OServiceService OServiceService
  23. PermitDenyService PermitDenyService
  24. TOCConfigStore TOCConfigStore
  25. SNACRateLimits wire.SNACRateLimits
  26. // New fields for WebAPI handlers
  27. SessionRetriever SessionRetriever
  28. FeedbagRetriever FeedbagRetriever
  29. FeedbagManager FeedbagManager
  30. // Phase 2 additions
  31. MessageRelayer MessageRelayer
  32. OfflineMessageManager OfflineMessageManager
  33. BuddyBroadcaster BuddyBroadcaster
  34. ProfileManager ProfileManager
  35. RelationshipFetcher interface {
  36. Relationship(ctx context.Context, me state.IdentScreenName, them state.IdentScreenName) (state.Relationship, error)
  37. }
  38. // Authentication support
  39. UserManager UserManager
  40. TokenStore TokenStore
  41. // Phase 3 additions
  42. PreferenceManager PreferenceManager
  43. PermitDenyManager PermitDenyManager
  44. // Phase 4 additions for OSCAR Bridge
  45. OSCARBridgeStore OSCARBridgeStore
  46. OSCARConfig OSCARConfig
  47. // Phase 5 additions for buddy list and messaging
  48. BuddyListManager interface{}
  49. // Phase 5 additions for chat rooms
  50. ChatManager *state.WebAPIChatManager
  51. }
  52. func (h Handler) GetHelloWorldHandler(w http.ResponseWriter, r *http.Request) {
  53. h.Logger.Info("got a request to the root endpoint", "method", r.Method, "path", r.URL.Path)
  54. _, _ = fmt.Fprintf(w, "WebAPI Server Running\n")
  55. }