Connection with Grist #2

Merged
lateralus23 merged 2 commits from grist into main 2026-01-22 18:37:47 +00:00
4 changed files with 32 additions and 0 deletions
Showing only changes of commit c95d877e68 - Show all commits

View file

@ -0,0 +1,14 @@
defmodule CampApi.Grist.Fundraising do
@moduledoc false
alias CampApi.Grist
@gauge_doc "wWacvVWE9QtQ"
@gauge_table "Dons"
def get() do
{:ok, %{body: %{"records" => records}}} = Grist.get_records(@gauge_doc, @gauge_table)
records
end
end

View file

@ -3,6 +3,7 @@ defmodule CampApiWeb.GristController do
alias CampApi.Grist alias CampApi.Grist
alias CampApi.Grist.Gauge alias CampApi.Grist.Gauge
alias CampApi.Grist.Fundraising
action_fallback CampApiWeb.FallbackController action_fallback CampApiWeb.FallbackController
@ -11,4 +12,10 @@ defmodule CampApiWeb.GristController do
render(conn, :gauge, gauge: gauge) render(conn, :gauge, gauge: gauge)
end end
def fundraising(conn, _params) do
fundraising = Fundraising.get()
render(conn, :fundraising, fundraising: fundraising)
end
end end

View file

@ -4,4 +4,13 @@ defmodule CampApiWeb.GristJSON do
def gauge(%{gauge: gauge}) do def gauge(%{gauge: gauge}) do
%{gauge: gauge} %{gauge: gauge}
end end
def fundraising(%{fundraising: fundraising}) do
total =
fundraising
|> Enum.map(fn record -> get_in(record, ["fields", "Montant"]) end)
|> Enum.sum()
%{total: total}
end
end end

View file

@ -9,6 +9,8 @@ defmodule CampApiWeb.Router do
pipe_through :api pipe_through :api
get "/gauge", GristController, :gauge get "/gauge", GristController, :gauge
get "/fundraising", GristController, :fundraising
end end
# Enable LiveDashboard in development # Enable LiveDashboard in development