mirror of
https://github.com/ClaperCo/Claper.git
synced 2026-02-24 12:09:59 +01:00
41 lines
1020 B
Elixir
41 lines
1020 B
Elixir
defmodule Lti13.Registrations do
|
|
import Ecto.Query, warn: false
|
|
alias Lti13.Deployments.Deployment
|
|
alias Claper.Repo
|
|
alias Lti13.Registrations.Registration
|
|
|
|
def create_registration(attrs) do
|
|
%Registration{}
|
|
|> Registration.changeset(attrs)
|
|
|> Repo.insert()
|
|
end
|
|
|
|
def get_registration_deployment(issuer, client_id, deployment_id) do
|
|
case Repo.one(
|
|
from(d in Deployment,
|
|
join: r in Registration,
|
|
on: d.registration_id == r.id,
|
|
where:
|
|
r.issuer == ^issuer and r.client_id == ^client_id and
|
|
d.deployment_id == ^deployment_id,
|
|
select: {r, d}
|
|
)
|
|
) do
|
|
nil ->
|
|
nil
|
|
|
|
{r, d} ->
|
|
{r, d}
|
|
end
|
|
end
|
|
|
|
def get_registration_by_issuer_client_id(issuer, client_id) do
|
|
Repo.one(
|
|
from(registration in Registration,
|
|
where: registration.issuer == ^issuer and registration.client_id == ^client_id,
|
|
select: registration
|
|
)
|
|
)
|
|
end
|
|
end
|