defmodule ComfycampWeb.OIDCRedirectURIController do use ComfycampWeb, :controller alias Comfycamp.SSO alias Comfycamp.SSO.OIDCRedirectURI def new(conn, %{"client_id" => client_id}) do changeset = SSO.change_oidc_redirect_uri(%OIDCRedirectURI{}) oidc_app = SSO.get_oidc_app!(client_id) conn |> put_layout(html: :admin) |> render(:new, changeset: changeset, oidc_app: oidc_app) end def create(conn, %{"client_id" => client_id, "oidc_redirect_uri" => uri_params}) do oidc_app = SSO.get_oidc_app!(client_id) uri_params = Map.put(uri_params, "oidc_app_id", client_id) case SSO.create_oidc_redirect_uri(uri_params) do {:ok, _uri} -> conn |> redirect(to: ~p"/admin/oidc_apps/#{client_id}") {:error, %Ecto.Changeset{} = changeset} -> conn |> put_layout(html: :admin) |> render(:new, changeset: changeset, oidc_app: oidc_app) end end def delete(conn, %{"client_id" => client_id, "id" => uri_id}) do uri = SSO.get_oidc_redirect_uri!(uri_id) {:ok, _uri} = SSO.delete_oidc_redirect_uri(uri) conn |> redirect(to: ~p"/admin/oidc_apps/#{client_id}") end end