mirror of
https://github.com/TheRealOwenRees/plantid-discord-bot.git
synced 2026-07-23 12:36:58 +00:00
40 lines
1.2 KiB
Elixir
40 lines
1.2 KiB
Elixir
defmodule PlantIdDiscordBot.Metrics.Message do
|
|
def send() do
|
|
PlantIdDiscordBot.Metrics.requests()
|
|
|> format_message()
|
|
|> do_send_message()
|
|
end
|
|
|
|
defp format_message(data) do
|
|
embeds =
|
|
Enum.map(data, fn {guild_id, metrics} ->
|
|
first_request_at =
|
|
DateTime.truncate(metrics.first_request_at, :second)
|
|
|> DateTime.to_string()
|
|
|
|
last_request_at =
|
|
DateTime.truncate(metrics.last_request_at, :second)
|
|
|> DateTime.to_string()
|
|
|
|
%{
|
|
title: metrics.guild_name,
|
|
fields: [
|
|
%{name: "Guild ID", value: guild_id, inline: true},
|
|
%{name: "First Request At", value: first_request_at, inline: true},
|
|
%{name: "Last Request At", value: last_request_at, inline: true},
|
|
%{name: "Total Requests", value: metrics.total_requests, inline: true}
|
|
]
|
|
}
|
|
end)
|
|
|
|
%{embeds: embeds}
|
|
end
|
|
|
|
defp do_send_message(data) do
|
|
webhook_url = Application.get_env(:plantid_discord_bot, :metrics_webhook_url)
|
|
body = Jason.encode!(data)
|
|
headers = [{"Content-Type", "application/json"}]
|
|
HTTPoison.post!(webhook_url, body, headers)
|
|
end
|
|
end
|