diff --git a/Behaver.cs b/Behaver.cs index df89777..6e79d4d 100644 --- a/Behaver.cs +++ b/Behaver.cs @@ -175,13 +175,26 @@ public class Behaver } public async Task React(Guid messageId, string reaction) { + Console.WriteLine($"sanity check: behaver is reacting, {messageId}, {reaction}"); var message = Rememberer.MessageDetail(messageId); if (message == null) + { + Console.Error.WriteLine($"message {messageId} not found"); return 404; + } + Console.WriteLine($"sanity check: message found."); + if (message.Channel == null) + { + Console.Error.WriteLine($"react is going to fail because message {messageId} has no Channel"); + } + Console.WriteLine($"sanity check: message has a channel."); var iprotocol = fetchInterface(message.Channel); if (iprotocol == null) + { + Console.WriteLine($"couldn't find protocol for {message.Channel?.Id}"); return 404; - + } +Console.WriteLine("I remember this message, i have found a protocol, i am ready to react toit"); return await iprotocol.React(message, reaction); } public async Task Reply(Guid messageId, string text) @@ -195,8 +208,8 @@ public class Behaver var iprotocol = fetchInterface(message.Channel); if (iprotocol == null) { - Console.WriteLine($"couldn't find channel for {message.Channel.Id} not found"); - return 404; + Console.WriteLine($"couldn't find protocol for {message.Channel.Id}"); + return 404; } return await iprotocol.Reply(message, text); } diff --git a/ProtocolInterfaces/DiscordInterface/DiscordInterface.cs b/ProtocolInterfaces/DiscordInterface/DiscordInterface.cs index 42e39db..0135811 100644 --- a/ProtocolInterfaces/DiscordInterface/DiscordInterface.cs +++ b/ProtocolInterfaces/DiscordInterface/DiscordInterface.cs @@ -384,6 +384,7 @@ public class DiscordInterface : ProtocolInterface private static async Task AttemptReact(IUserMessage msg, string e) { + Console.WriteLine("discord attempting to react"); var c = Rememberer.SearchChannel(c => c.ExternalId == msg.Channel.Id.ToString());// db.Channels.FirstOrDefault(c => c.ExternalId == msg.Channel.Id.ToString()); //var preferredEmote = c.EmoteOverrides?[e] ?? e; //TODO: emote overrides var preferredEmote = e; diff --git a/Rememberer.cs b/Rememberer.cs index c45c798..59d4509 100644 --- a/Rememberer.cs +++ b/Rememberer.cs @@ -90,7 +90,6 @@ public static class Rememberer { toRemember.Channel.Messages.Add(toRemember); db.Update(toRemember.Channel); - // db.SaveChanges(); } db.Update(toRemember); db.SaveChanges(); @@ -217,6 +216,7 @@ public static class Rememberer Message toReturn; dbAccessSemaphore.Wait(); toReturn = db.Messages.Find(Id); + db.Entry(toReturn).Reference(m => m.Channel).Load(); dbAccessSemaphore.Release(); return toReturn; } diff --git a/WebInterface/Controllers/api/InternalAPIProtocolController.cs b/WebInterface/Controllers/api/InternalAPIProtocolController.cs index 94c5529..939cc52 100644 --- a/WebInterface/Controllers/api/InternalAPIProtocolController.cs +++ b/WebInterface/Controllers/api/InternalAPIProtocolController.cs @@ -25,7 +25,7 @@ public class InternalAPIProtocolController : ControllerBase [HttpPost] [Route("PostMessage")] [Produces("application/json")] - public IActionResult PostMessage([FromBody]extraSpecialObjectReadGlorifiedTupleFor_PostMessage param) + public IActionResult PostMessage([FromBody] extraSpecialObjectReadGlorifiedTupleFor_PostMessage param) { return StatusCode(Behaver.Instance.SendMessage(param.channelId, param.messageText).Result); } @@ -39,7 +39,34 @@ public class InternalAPIProtocolController : ControllerBase [Produces("application/json")] public IActionResult ReplyToMessage([FromBody] extraSpecialObjectReadGlorifiedTupleFor_ReplyToMessage param) { - Console.WriteLine("ReplyToMessage - ${param.repliedMessageId}, {param.messageText}"); + Console.WriteLine($"ReplyToMessage - {param.repliedMessageId}, {param.messageText}"); return StatusCode(Behaver.Instance.Reply(param.repliedMessageId, param.messageText).Result); } + + public class extraSpecialObjectReadGlorifiedTupleFor_SendFile + { + public Guid channelId; public string path; public string accompanyingText; + } + [HttpPost] + [Route("SendFile")] + [Produces("application/json")] + public IActionResult SendFile([FromBody] extraSpecialObjectReadGlorifiedTupleFor_SendFile param) + { + Console.WriteLine($"SendFile- {param.channelId}, {param.path}, {param.accompanyingText}"); + return StatusCode(Behaver.Instance.SendFile(param.channelId, param.path, param.accompanyingText).Result); + } + + public class extraSpecialObjectReadGlorifiedTupleFor_ReactToMessage + { + public string reactionString; + public Guid reactedMessageId; + } + [HttpPost] + [Route("ReactToMessage")] + [Produces("application/json")] + public IActionResult ReactToMessage([FromBody] extraSpecialObjectReadGlorifiedTupleFor_ReactToMessage param) + { + Console.WriteLine($"ReactToMessage- {param.reactedMessageId}, {param.reactionString}"); + return StatusCode(Behaver.Instance.React(param.reactedMessageId, param.reactionString).Result); + } }