using Core.Annotations; using Core.Controllers; using Core.DI; using Core.Models.Eft.Common; using Core.Models.Eft.Common.Request; using Core.Models.Eft.Dialog; using Core.Utils; namespace Core.Callbacks; [Injectable(InjectableTypeOverride = typeof(OnUpdate), TypePriority = OnUpdateOrder.DialogueCallbacks)] [Injectable(InjectableTypeOverride = typeof(DialogueCallbacks))] public class DialogueCallbacks( HashUtil _hashUtil, TimeUtil _timeUtil, HttpResponseUtil _httpResponseUtil, DialogueController _dialogueController ) : OnUpdate { /// /// Handle client/friend/list /// /// /// /// /// public string GetFriendList(string url, EmptyRequestData info, string sessionID) { return _httpResponseUtil.GetBody(_dialogueController.GetFriendList(sessionID)); } /// /// Handle client/chatServer/list /// /// /// /// /// public string GetChatServerList(string url, GetChatServerListRequestData info, string sessionID) { var chatServer = new List() { new ChatServer() { Id = _hashUtil.Generate(), RegistrationId = 20, DateTime = _timeUtil.GetTimeStamp(), IsDeveloper = true, Regions = ["EUR"], VersionId = "bgkidft87ddd", Ip = "", Port = 0, Chats = [new() { Id = "0", Members = 0 }], } }; return _httpResponseUtil.GetBody(chatServer); } /// /// Handle client/mail/dialog/list /// /// /// /// /// public string GetMailDialogList(string url, GetMailDialogListRequestData info, string sessionID) { return _httpResponseUtil.GetBody(_dialogueController.GenerateDialogueList(sessionID), 0, null, false); } /// /// Handle client/mail/dialog/view /// /// /// /// /// public string GetMailDialogView(string url, GetMailDialogViewRequestData info, string sessionID) { return _httpResponseUtil.GetBody(_dialogueController.GenerateDialogueView(info, sessionID), 0, null, false); } /// /// Handle client/mail/dialog/info /// /// /// /// /// public string GetMailDialogInfo(string url, GetMailDialogInfoRequestData info, string sessionID) { return _httpResponseUtil.GetBody(_dialogueController.GetDialogueInfo(info.DialogId, sessionID)); } /// /// Handle client/mail/dialog/remove /// /// /// /// /// public string RemoveDialog(string url, RemoveDialogRequestData info, string sessionID) { _dialogueController.RemoveDialogue(info.DialogId, sessionID); return _httpResponseUtil.EmptyArrayResponse(); } /// /// Handle client/mail/dialog/pin /// /// /// /// /// public string PinDialog(string url, PinDialogRequestData info, string sessionID) { _dialogueController.SetDialoguePin(info.DialogId, true, sessionID); return _httpResponseUtil.EmptyArrayResponse(); } /// /// Handle client/mail/dialog/unpin /// /// /// /// /// public string UnpinDialog(string url, PinDialogRequestData info, string sessionID) { _dialogueController.SetDialoguePin(info.DialogId, false, sessionID); return _httpResponseUtil.EmptyArrayResponse(); } /// /// Handle client/mail/dialog/read /// /// /// /// /// public string SetRead(string url, SetDialogReadRequestData info, string sessionID) { _dialogueController.SetRead(info.Dialogs, sessionID); return _httpResponseUtil.EmptyArrayResponse(); } /// /// Handle client/mail/dialog/getAllAttachments /// /// /// /// /// public string GetAllAttachments(string url, GetAllAttachmentsRequestData info, string sessionID) { return _httpResponseUtil.GetBody(_dialogueController.GetAllAttachments(info.DialogId, sessionID)); } /// /// Handle client/mail/msg/send /// /// /// /// /// public string SendMessage(string url, SendMessageRequest info, string sessionID) { return _httpResponseUtil.GetBody(_dialogueController.SendMessage(sessionID, info)); } /// /// Handle client/friend/request/list/outbox /// /// /// /// /// public string ListOutbox(string url, EmptyRequestData info, string sessionID) { return _httpResponseUtil.EmptyArrayResponse(); } /// /// Handle client/friend/request/list/inbox /// /// /// /// /// public string ListInbox(string url, EmptyRequestData info, string sessionID) { return _httpResponseUtil.EmptyArrayResponse(); } /// /// Handle client/friend/request/send /// /// /// /// /// public string SendFriendRequest(string url, FriendRequestData info, string sessionID) { return _httpResponseUtil.GetBody(_dialogueController.SendFriendRequest(sessionID, info)); } /// /// Handle client/friend/request/accept-all /// /// /// /// /// public string AcceptAllFriendRequests(string url, EmptyRequestData info, string sessionID) { return _httpResponseUtil.NullResponse(); } /// /// Handle client/friend/request/accept /// /// /// /// /// public string AcceptFriendRequest(string url, AcceptFriendRequestData info, string sessionID) { return _httpResponseUtil.GetBody(true); } /// /// Handle client/friend/request/decline /// /// /// /// /// public string DeclineFriendRequest(string url, DeclineFriendRequestData info, string sessionID) { return _httpResponseUtil.GetBody(true); } /// /// Handle client/friend/request/cancel /// /// /// /// /// public string CancelFriendRequest(string url, CancelFriendRequestData info, string sessionID) { return _httpResponseUtil.GetBody(true); } /// /// Handle client/friend/delete /// /// /// /// /// public string DeleteFriend(string url, DeleteFriendRequest info, string sessionID) { _dialogueController.DeleteFriend(sessionID, info); return _httpResponseUtil.NullResponse(); } /// /// Handle client/friend/ignore/set /// /// /// /// /// public string IgnoreFriend(string url, UIDRequestData info, string sessionID) { return _httpResponseUtil.NullResponse(); } /// /// Handle client/friend/ignore/remove /// /// /// /// /// public string UnIgnoreFriend(string url, UIDRequestData info, string sessionID) { return _httpResponseUtil.NullResponse(); } public string ClearMail(string url, ClearMailMessageRequest info, string sessionID) { return _httpResponseUtil.EmptyArrayResponse(); } public string RemoveMail(string url, RemoveMailMessageRequest info, string sessionID) { return _httpResponseUtil.EmptyArrayResponse(); } public string CreateGroupMail(string url, CreateGroupMailRequest info, string sessionID) { return _httpResponseUtil.EmptyArrayResponse(); } public string ChangeMailGroupOwner(string url, ChangeGroupMailOwnerRequest info, string sessionID) { throw new NotImplementedException(); // Not implemented in Node } public string AddUserToMail(string url, AddUserGroupMailRequest info, string sessionID) { throw new NotImplementedException(); // Not implemented in Node } public string RemoveUserFromMail(string url, RemoveUserGroupMailRequest info, string sessionID) { throw new NotImplementedException(); // Not implemented in Node } public Task OnUpdate(long timeSinceLastRun) { _dialogueController.Update(); return Task.FromResult(true); } public string GetRoute() { return "spt-dialogue"; } }