using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.Callbacks; using SPTarkov.Server.Core.DI; using SPTarkov.Server.Core.Models.Eft.Common; using SPTarkov.Server.Core.Models.Eft.Common.Request; using SPTarkov.Server.Core.Models.Eft.Dialog; using SPTarkov.Server.Core.Utils; namespace SPTarkov.Server.Core.Routers.Static; [Injectable] public class DialogStaticRouter : StaticRouter { public DialogStaticRouter(JsonUtil jsonUtil, DialogueCallbacks dialogueCallbacks) : base( jsonUtil, [ new RouteAction( "/client/chatServer/list", async (url, info, sessionID, output) => await dialogueCallbacks.GetChatServerList( url, info as GetChatServerListRequestData, sessionID ), typeof(GetChatServerListRequestData) ), new RouteAction( "/client/mail/dialog/list", async (url, info, sessionID, output) => await dialogueCallbacks.GetMailDialogList( url, info as GetMailDialogListRequestData, sessionID ), typeof(GetMailDialogListRequestData) ), new RouteAction( "/client/mail/dialog/view", async (url, info, sessionID, output) => await dialogueCallbacks.GetMailDialogView( url, info as GetMailDialogViewRequestData, sessionID ), typeof(GetMailDialogViewRequestData) ), new RouteAction( "/client/mail/dialog/info", async (url, info, sessionID, output) => await dialogueCallbacks.GetMailDialogInfo( url, info as GetMailDialogInfoRequestData, sessionID ), typeof(GetMailDialogInfoRequestData) ), new RouteAction( "/client/mail/dialog/remove", async (url, info, sessionID, output) => await dialogueCallbacks.RemoveDialog( url, info as RemoveDialogRequestData, sessionID ), typeof(RemoveDialogRequestData) ), new RouteAction( "/client/mail/dialog/pin", async (url, info, sessionID, output) => await dialogueCallbacks.PinDialog( url, info as PinDialogRequestData, sessionID ), typeof(PinDialogRequestData) ), new RouteAction( "/client/mail/dialog/unpin", async (url, info, sessionID, output) => await dialogueCallbacks.UnpinDialog( url, info as PinDialogRequestData, sessionID ), typeof(PinDialogRequestData) ), new RouteAction( "/client/mail/dialog/read", async (url, info, sessionID, output) => await dialogueCallbacks.SetRead( url, info as SetDialogReadRequestData, sessionID ), typeof(SetDialogReadRequestData) ), new RouteAction( "/client/mail/dialog/getAllAttachments", async (url, info, sessionID, output) => await dialogueCallbacks.GetAllAttachments( url, info as GetAllAttachmentsRequestData, sessionID ), typeof(GetAllAttachmentsRequestData) ), new RouteAction( "/client/mail/msg/send", async (url, info, sessionID, output) => await dialogueCallbacks.SendMessage( url, info as SendMessageRequest, sessionID ), typeof(SendMessageRequest) ), new RouteAction( "/client/mail/dialog/clear", async (url, info, sessionID, output) => await dialogueCallbacks.ClearMail( url, info as ClearMailMessageRequest, sessionID ), typeof(ClearMailMessageRequest) ), new RouteAction( "/client/mail/dialog/group/create", async (url, info, sessionID, output) => await dialogueCallbacks.CreateGroupMail( url, info as CreateGroupMailRequest, sessionID ), typeof(CreateGroupMailRequest) ), new RouteAction( "/client/mail/dialog/group/owner/change", async (url, info, sessionID, output) => await dialogueCallbacks.ChangeMailGroupOwner( url, info as ChangeGroupMailOwnerRequest, sessionID ), typeof(ChangeGroupMailOwnerRequest) ), new RouteAction( "/client/mail/dialog/group/users/add", async (url, info, sessionID, output) => await dialogueCallbacks.AddUserToMail( url, info as AddUserGroupMailRequest, sessionID ), typeof(AddUserGroupMailRequest) ), new RouteAction( "/client/mail/dialog/group/users/remove", async (url, info, sessionID, output) => await dialogueCallbacks.RemoveUserFromMail( url, info as RemoveUserGroupMailRequest, sessionID ), typeof(RemoveUserGroupMailRequest) ), new RouteAction( "/client/friend/list", async (url, info, sessionID, output) => await dialogueCallbacks.GetFriendList( url, info as EmptyRequestData, sessionID ) ), new RouteAction( "/client/friend/request/list/outbox", async (url, info, sessionID, output) => await dialogueCallbacks.ListOutbox(url, info as EmptyRequestData, sessionID) ), new RouteAction( "/client/friend/request/list/inbox", async (url, info, sessionID, output) => await dialogueCallbacks.ListInbox(url, info as EmptyRequestData, sessionID) ), new RouteAction( "/client/friend/request/send", async (url, info, sessionID, output) => await dialogueCallbacks.SendFriendRequest( url, info as FriendRequestData, sessionID ), typeof(FriendRequestData) ), new RouteAction( "/client/friend/request/accept-all", async (url, info, sessionID, output) => await dialogueCallbacks.AcceptAllFriendRequests( url, info as EmptyRequestData, sessionID ) ), new RouteAction( "/client/friend/request/accept", async (url, info, sessionID, output) => await dialogueCallbacks.AcceptFriendRequest( url, info as AcceptFriendRequestData, sessionID ), typeof(AcceptFriendRequestData) ), new RouteAction( "/client/friend/request/decline", async (url, info, sessionID, output) => await dialogueCallbacks.DeclineFriendRequest( url, info as DeclineFriendRequestData, sessionID ), typeof(DeclineFriendRequestData) ), new RouteAction( "/client/friend/request/cancel", async (url, info, sessionID, output) => await dialogueCallbacks.CancelFriendRequest( url, info as CancelFriendRequestData, sessionID ), typeof(CancelFriendRequestData) ), new RouteAction( "/client/friend/delete", async (url, info, sessionID, output) => await dialogueCallbacks.DeleteFriend( url, info as DeleteFriendRequest, sessionID ), typeof(DeleteFriendRequest) ), new RouteAction( "/client/friend/ignore/set", async (url, info, sessionID, output) => await dialogueCallbacks.IgnoreFriend( url, info as UIDRequestData, sessionID ), typeof(UIDRequestData) ), new RouteAction( "/client/friend/ignore/remove", async (url, info, sessionID, output) => await dialogueCallbacks.UnIgnoreFriend( url, info as UIDRequestData, sessionID ), typeof(UIDRequestData) ), ] ) { } }