vassago/WebInterface/Controllers/api/InternalAPIProtocolController.cs
2025-06-04 16:28:53 -04:00

76 lines
2.7 KiB
C#

using System.Diagnostics;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using vassago.Models;
using vassago.ProtocolInterfaces.DiscordInterface;
namespace vassago.Controllers.api;
[Route("api/[controller]")]
[ApiController]
public class InternalAPIProtocolController : ControllerBase
{
private readonly ILogger<InternalAPIProtocolController> _logger;
public InternalAPIProtocolController(ILogger<InternalAPIProtocolController> logger)
{
_logger = logger;
}
public class extraSpecialObjectReadGlorifiedTupleFor_PostMessage
{
public string messageText;
public Guid channelId;
}
[HttpPost]
[Route("PostMessage")]
[Produces("application/json")]
public IActionResult PostMessage([FromBody] extraSpecialObjectReadGlorifiedTupleFor_PostMessage param)
{
return StatusCode(Behaver.Instance.SendMessage(param.channelId, param.messageText).Result);
}
public class extraSpecialObjectReadGlorifiedTupleFor_ReplyToMessage
{
public string messageText;
public Guid repliedMessageId;
}
[HttpPost]
[Route("ReplyToMessage")]
[Produces("application/json")]
public IActionResult ReplyToMessage([FromBody] extraSpecialObjectReadGlorifiedTupleFor_ReplyToMessage param)
{
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 accompanyingText;
public string base64dData;
public string filename;
}
[HttpPost]
[Route("SendFile")]
[Produces("application/json")]
public IActionResult SendFile([FromBody] extraSpecialObjectReadGlorifiedTupleFor_SendFile param)
{
Console.WriteLine($"SendFile- {param.channelId}, {param.filename} (base64'd, {param.base64dData?.Length} chars), {param.accompanyingText}");
return StatusCode(Behaver.Instance.SendFile(param.channelId, param.base64dData, param.filename, 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);
}
}