Files
Alchegos.Webhook/Handlers/ProjectPlanEventHandler.cs
2025-03-13 11:00:11 +00:00

32 lines
1022 B
C#

using System.Text.Json;
using System.Text.Json.Nodes;
using Alchegos.Core.Services.RabbitMQ;
namespace Alchegos.Gitea.Webhook.Handlers;
public class ProjectPlanEventHandler : IGiteaEventHandler
{
public async Task HandleAsync(JsonNode payload, IRabbitPublisher publisher)
{
string projectName = payload["title"]?.ToString();
string action = payload["action"]?.ToString();
string plan = payload["content"]?.ToString();
Dictionary<string, string> routingKeys = new Dictionary<string, string>
{
{"create", "new_project_plan_created"},
{"update", "project_plan_updated"},
};
Dictionary<string, string> message = new()
{
{ "project_name", projectName },
{ "project_plan", plan }
};
await publisher.PublishAsync(
exchange: "alchegos",
routingKey: routingKeys.GetValueOrDefault(action, ""),
message: JsonSerializer.Serialize(message)
);
}
}