| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205 |
- package handler
- import (
- "github.com/mk6i/retro-aim-server/server/oscar"
- "github.com/mk6i/retro-aim-server/wire"
- )
- // Handlers aggregates various specialized handlers required for processing
- // different types of OSCAR protocol requests. Each field corresponds to a
- // specific handler responsible for a distinct aspect of the OSCAR service,
- // such as managing buddy lists, chat sessions, and user alerts.
- type Handlers struct {
- AdminHandler
- AlertHandler
- BARTHandler
- BuddyHandler
- ChatHandler
- ChatNavHandler
- FeedbagHandler
- ICBMHandler
- ICQHandler
- LocateHandler
- ODirHandler
- OServiceHandler
- PermitDenyHandler
- StatsHandler
- UserLookupHandler
- }
- // NewBOSRouter initializes and configures a new Router instance for handling
- // OSCAR protocol requests in the context of a Basic Oscar Service (BOS).
- func NewBOSRouter(h Handlers) oscar.Router {
- router := oscar.NewRouter()
- router.Register(wire.Alert, wire.AlertNotifyCapabilities, h.AlertHandler.NotifyCapabilities)
- router.Register(wire.Alert, wire.AlertNotifyDisplayCapabilities, h.AlertHandler.NotifyDisplayCapabilities)
- router.Register(wire.BART, wire.BARTDownloadQuery, h.BARTHandler.DownloadQuery)
- router.Register(wire.BART, wire.BARTUploadQuery, h.BARTHandler.UploadQuery)
- router.Register(wire.Buddy, wire.BuddyAddBuddies, h.BuddyHandler.AddBuddies)
- router.Register(wire.Buddy, wire.BuddyDelBuddies, h.BuddyHandler.DelBuddies)
- router.Register(wire.Buddy, wire.BuddyRightsQuery, h.BuddyHandler.RightsQuery)
- router.Register(wire.ChatNav, wire.ChatNavCreateRoom, h.ChatNavHandler.CreateRoom)
- router.Register(wire.ChatNav, wire.ChatNavRequestChatRights, h.ChatNavHandler.RequestChatRights)
- router.Register(wire.ChatNav, wire.ChatNavRequestExchangeInfo, h.ChatNavHandler.RequestExchangeInfo)
- router.Register(wire.ChatNav, wire.ChatNavRequestRoomInfo, h.ChatNavHandler.RequestRoomInfo)
- router.Register(wire.Feedbag, wire.FeedbagDeleteItem, h.FeedbagHandler.DeleteItem)
- router.Register(wire.Feedbag, wire.FeedbagEndCluster, h.FeedbagHandler.EndCluster)
- router.Register(wire.Feedbag, wire.FeedbagInsertItem, h.FeedbagHandler.InsertItem)
- router.Register(wire.Feedbag, wire.FeedbagQuery, h.FeedbagHandler.Query)
- router.Register(wire.Feedbag, wire.FeedbagQueryIfModified, h.FeedbagHandler.QueryIfModified)
- router.Register(wire.Feedbag, wire.FeedbagRespondAuthorizeToHost, h.FeedbagHandler.RespondAuthorizeToHost)
- router.Register(wire.Feedbag, wire.FeedbagRightsQuery, h.FeedbagHandler.RightsQuery)
- router.Register(wire.Feedbag, wire.FeedbagStartCluster, h.FeedbagHandler.StartCluster)
- router.Register(wire.Feedbag, wire.FeedbagUpdateItem, h.FeedbagHandler.UpdateItem)
- router.Register(wire.Feedbag, wire.FeedbagUse, h.FeedbagHandler.Use)
- router.Register(wire.ICQ, wire.ICQDBQuery, h.ICQHandler.DBQuery)
- router.Register(wire.ICBM, wire.ICBMAddParameters, h.ICBMHandler.AddParameters)
- router.Register(wire.ICBM, wire.ICBMChannelMsgToHost, h.ICBMHandler.ChannelMsgToHost)
- router.Register(wire.ICBM, wire.ICBMClientErr, h.ICBMHandler.ClientErr)
- router.Register(wire.ICBM, wire.ICBMClientEvent, h.ICBMHandler.ClientEvent)
- router.Register(wire.ICBM, wire.ICBMEvilRequest, h.ICBMHandler.EvilRequest)
- router.Register(wire.ICBM, wire.ICBMParameterQuery, h.ICBMHandler.ParameterQuery)
- router.Register(wire.Locate, wire.LocateGetDirInfo, h.LocateHandler.GetDirInfo)
- router.Register(wire.Locate, wire.LocateRightsQuery, h.LocateHandler.RightsQuery)
- router.Register(wire.Locate, wire.LocateSetDirInfo, h.LocateHandler.SetDirInfo)
- router.Register(wire.Locate, wire.LocateSetInfo, h.LocateHandler.SetInfo)
- router.Register(wire.Locate, wire.LocateSetKeywordInfo, h.LocateHandler.SetKeywordInfo)
- router.Register(wire.Locate, wire.LocateUserInfoQuery, h.LocateHandler.UserInfoQuery)
- router.Register(wire.Locate, wire.LocateUserInfoQuery2, h.LocateHandler.UserInfoQuery2)
- router.Register(wire.OService, wire.OServiceClientOnline, h.OServiceHandler.ClientOnline)
- router.Register(wire.OService, wire.OServiceClientVersions, h.OServiceHandler.ClientVersions)
- router.Register(wire.OService, wire.OServiceIdleNotification, h.OServiceHandler.IdleNotification)
- router.Register(wire.OService, wire.OServiceNoop, h.OServiceHandler.Noop)
- router.Register(wire.OService, wire.OServiceRateParamsQuery, h.OServiceHandler.RateParamsQuery)
- router.Register(wire.OService, wire.OServiceRateParamsSubAdd, h.OServiceHandler.RateParamsSubAdd)
- router.Register(wire.OService, wire.OServiceServiceRequest, h.OServiceHandler.ServiceRequest)
- router.Register(wire.OService, wire.OServiceSetPrivacyFlags, h.OServiceHandler.SetPrivacyFlags)
- router.Register(wire.OService, wire.OServiceSetUserInfoFields, h.OServiceHandler.SetUserInfoFields)
- router.Register(wire.OService, wire.OServiceUserInfoQuery, h.OServiceHandler.UserInfoQuery)
- router.Register(wire.PermitDeny, wire.PermitDenyAddDenyListEntries, h.PermitDenyHandler.AddDenyListEntries)
- router.Register(wire.PermitDeny, wire.PermitDenyAddPermListEntries, h.PermitDenyHandler.AddPermListEntries)
- router.Register(wire.PermitDeny, wire.PermitDenyDelDenyListEntries, h.PermitDenyHandler.DelDenyListEntries)
- router.Register(wire.PermitDeny, wire.PermitDenyDelPermListEntries, h.PermitDenyHandler.DelPermListEntries)
- router.Register(wire.PermitDeny, wire.PermitDenyRightsQuery, h.PermitDenyHandler.RightsQuery)
- router.Register(wire.PermitDeny, wire.PermitDenySetGroupPermitMask, h.PermitDenyHandler.SetGroupPermitMask)
- router.Register(wire.Stats, wire.StatsReportEvents, h.StatsHandler.ReportEvents)
- router.Register(wire.UserLookup, wire.UserLookupFindByEmail, h.UserLookupHandler.FindByEmail)
- return router
- }
- // NewChatRouter initializes and configures a new Router instance specifically
- // for handling chat-related OSCAR protocol requests.
- func NewChatRouter(h Handlers) oscar.Router {
- router := oscar.NewRouter()
- router.Register(wire.Chat, wire.ChatChannelMsgToHost, h.ChatHandler.ChannelMsgToHost)
- router.Register(wire.OService, wire.OServiceClientOnline, h.ClientOnline)
- router.Register(wire.OService, wire.OServiceClientVersions, h.OServiceHandler.ClientVersions)
- router.Register(wire.OService, wire.OServiceIdleNotification, h.OServiceHandler.IdleNotification)
- router.Register(wire.OService, wire.OServiceNoop, h.OServiceHandler.Noop)
- router.Register(wire.OService, wire.OServiceRateParamsQuery, h.OServiceHandler.RateParamsQuery)
- router.Register(wire.OService, wire.OServiceRateParamsSubAdd, h.OServiceHandler.RateParamsSubAdd)
- router.Register(wire.OService, wire.OServiceSetPrivacyFlags, h.OServiceHandler.SetPrivacyFlags)
- router.Register(wire.OService, wire.OServiceSetUserInfoFields, h.OServiceHandler.SetUserInfoFields)
- router.Register(wire.OService, wire.OServiceUserInfoQuery, h.OServiceHandler.UserInfoQuery)
- return router
- }
- // NewChatNavRouter initializes and configures a new Router instance for
- // handling OSCAR protocol requests in the context of the ChatNav service.
- func NewChatNavRouter(h Handlers) oscar.Router {
- router := oscar.NewRouter()
- router.Register(wire.ChatNav, wire.ChatNavCreateRoom, h.ChatNavHandler.CreateRoom)
- router.Register(wire.ChatNav, wire.ChatNavRequestChatRights, h.ChatNavHandler.RequestChatRights)
- router.Register(wire.ChatNav, wire.ChatNavRequestExchangeInfo, h.ChatNavHandler.RequestExchangeInfo)
- router.Register(wire.ChatNav, wire.ChatNavRequestRoomInfo, h.ChatNavHandler.RequestRoomInfo)
- router.Register(wire.OService, wire.OServiceClientOnline, h.ClientOnline)
- router.Register(wire.OService, wire.OServiceClientVersions, h.OServiceHandler.ClientVersions)
- router.Register(wire.OService, wire.OServiceIdleNotification, h.OServiceHandler.IdleNotification)
- router.Register(wire.OService, wire.OServiceRateParamsQuery, h.OServiceHandler.RateParamsQuery)
- router.Register(wire.OService, wire.OServiceRateParamsSubAdd, h.OServiceHandler.RateParamsSubAdd)
- router.Register(wire.OService, wire.OServiceSetPrivacyFlags, h.OServiceHandler.SetPrivacyFlags)
- router.Register(wire.OService, wire.OServiceSetUserInfoFields, h.OServiceHandler.SetUserInfoFields)
- router.Register(wire.OService, wire.OServiceUserInfoQuery, h.OServiceHandler.UserInfoQuery)
- return router
- }
- func NewAlertRouter(h Handlers) oscar.Router {
- router := oscar.NewRouter()
- router.Register(wire.Alert, wire.AlertNotifyCapabilities, h.AlertHandler.NotifyCapabilities)
- router.Register(wire.Alert, wire.AlertNotifyDisplayCapabilities, h.AlertHandler.NotifyDisplayCapabilities)
- router.Register(wire.Alert, wire.AlertUserOnline, h.AlertHandler.NotifyDisplayCapabilities)
- router.Register(wire.OService, wire.OServiceClientOnline, h.ClientOnline)
- router.Register(wire.OService, wire.OServiceClientVersions, h.OServiceHandler.ClientVersions)
- router.Register(wire.OService, wire.OServiceRateParamsQuery, h.OServiceHandler.RateParamsQuery)
- router.Register(wire.OService, wire.OServiceRateParamsSubAdd, h.OServiceHandler.RateParamsSubAdd)
- return router
- }
- func NewBARTRouter(h Handlers) oscar.Router {
- router := oscar.NewRouter()
- router.Register(wire.BART, wire.BARTDownloadQuery, h.BARTHandler.DownloadQuery)
- router.Register(wire.BART, wire.BARTUploadQuery, h.BARTHandler.UploadQuery)
- router.Register(wire.OService, wire.OServiceClientOnline, h.ClientOnline)
- router.Register(wire.OService, wire.OServiceClientVersions, h.OServiceHandler.ClientVersions)
- router.Register(wire.OService, wire.OServiceRateParamsQuery, h.OServiceHandler.RateParamsQuery)
- router.Register(wire.OService, wire.OServiceRateParamsSubAdd, h.OServiceHandler.RateParamsSubAdd)
- return router
- }
- func NewAdminRouter(h Handlers) oscar.Router {
- router := oscar.NewRouter()
- router.Register(wire.OService, wire.OServiceClientOnline, h.OServiceHandler.ClientOnline)
- router.Register(wire.OService, wire.OServiceClientVersions, h.OServiceHandler.ClientVersions)
- router.Register(wire.OService, wire.OServiceRateParamsQuery, h.OServiceHandler.RateParamsQuery)
- router.Register(wire.OService, wire.OServiceRateParamsSubAdd, h.OServiceHandler.RateParamsSubAdd)
- router.Register(wire.OService, wire.OServiceSetPrivacyFlags, h.OServiceHandler.SetPrivacyFlags)
- router.Register(wire.Admin, wire.AdminAcctConfirmRequest, h.AdminHandler.ConfirmRequest)
- router.Register(wire.Admin, wire.AdminInfoChangeRequest, h.AdminHandler.InfoChangeRequest)
- router.Register(wire.Admin, wire.AdminInfoQuery, h.AdminHandler.InfoQuery)
- return router
- }
- func NewODirRouter(h Handlers) oscar.Router {
- router := oscar.NewRouter()
- router.Register(wire.ODir, wire.ODirInfoQuery, h.ODirHandler.InfoQuery)
- router.Register(wire.ODir, wire.ODirKeywordListQuery, h.ODirHandler.KeywordListQuery)
- router.Register(wire.OService, wire.OServiceClientOnline, h.ClientOnline)
- router.Register(wire.OService, wire.OServiceClientVersions, h.OServiceHandler.ClientVersions)
- router.Register(wire.OService, wire.OServiceIdleNotification, h.OServiceHandler.IdleNotification)
- router.Register(wire.OService, wire.OServiceNoop, h.OServiceHandler.Noop)
- router.Register(wire.OService, wire.OServiceRateParamsQuery, h.OServiceHandler.RateParamsQuery)
- router.Register(wire.OService, wire.OServiceRateParamsSubAdd, h.OServiceHandler.RateParamsSubAdd)
- router.Register(wire.OService, wire.OServiceSetPrivacyFlags, h.OServiceHandler.SetPrivacyFlags)
- return router
- }
|