From 2a406ef236d1c5bb58344528a0ff0cbe05b0c8f8 Mon Sep 17 00:00:00 2001 From: njms Date: Tue, 6 Jun 2023 09:38:52 -0700 Subject: [PATCH] Scaffhold token interface --- lib/hostas/denizen.ex | 3 +++ lib/hostas/token.ex | 9 ++++++--- lib/hostas_web/controllers/auth/token_controller.ex | 7 +++++++ lib/hostas_web/controllers/auth_controller.ex | 7 ------- lib/hostas_web/router.ex | 2 +- ...reate_tokens.exs => 20230606161946_create_tokens.exs} | 2 +- 6 files changed, 18 insertions(+), 12 deletions(-) create mode 100644 lib/hostas_web/controllers/auth/token_controller.ex delete mode 100644 lib/hostas_web/controllers/auth_controller.ex rename priv/repo/migrations/{20230606160240_create_tokens.exs => 20230606161946_create_tokens.exs} (85%) diff --git a/lib/hostas/denizen.ex b/lib/hostas/denizen.ex index a1c5363..1e8d454 100644 --- a/lib/hostas/denizen.ex +++ b/lib/hostas/denizen.ex @@ -7,6 +7,9 @@ defmodule Hostas.Denizen do field :name, :string field :password, :string + # Links entries in the "tokens" table to denizens + has_many(:tokens, Hostas.Token) + timestamps() end diff --git a/lib/hostas/token.ex b/lib/hostas/token.ex index ac69192..5260c9a 100644 --- a/lib/hostas/token.ex +++ b/lib/hostas/token.ex @@ -3,16 +3,19 @@ defmodule Hostas.Token do import Ecto.Changeset schema "tokens" do - field :id, :integer + field :denizen_id, :integer field :expires, :utc_datetime + # Link tokens to denizens + belongs_to :denizens, Hostas.Denizen + timestamps() end @doc false def changeset(token, attrs) do token - |> cast(attrs, [:id, :expires]) - |> validate_required([:id, :expires]) + |> cast(attrs, [:denizen_id, :expires]) + |> validate_required([:denizen_id, :expires]) end end diff --git a/lib/hostas_web/controllers/auth/token_controller.ex b/lib/hostas_web/controllers/auth/token_controller.ex new file mode 100644 index 0000000..495d582 --- /dev/null +++ b/lib/hostas_web/controllers/auth/token_controller.ex @@ -0,0 +1,7 @@ +defmodule HostasWeb.Auth.TokenController do + use HostasWeb, :controller + + def index(_conn, _params) do + :ok + end +end diff --git a/lib/hostas_web/controllers/auth_controller.ex b/lib/hostas_web/controllers/auth_controller.ex deleted file mode 100644 index f2a7228..0000000 --- a/lib/hostas_web/controllers/auth_controller.ex +++ /dev/null @@ -1,7 +0,0 @@ -defmodule HostasWeb.AuthenticationController do - use HostasWeb, :controller - - def join(conn, _params) do - :ok - end -end diff --git a/lib/hostas_web/router.ex b/lib/hostas_web/router.ex index 8af27a8..d1f0e39 100644 --- a/lib/hostas_web/router.ex +++ b/lib/hostas_web/router.ex @@ -23,7 +23,7 @@ defmodule HostasWeb.Router do scope "/hostapi/", HostasWeb do pipe_through :api - post "/auth/register", AuthenticationController, :register + resources "/auth/token", Auth.TokenController end # Enable LiveDashboard and Swoosh mailbox preview in development diff --git a/priv/repo/migrations/20230606160240_create_tokens.exs b/priv/repo/migrations/20230606161946_create_tokens.exs similarity index 85% rename from priv/repo/migrations/20230606160240_create_tokens.exs rename to priv/repo/migrations/20230606161946_create_tokens.exs index 5f73651..d2ff459 100644 --- a/priv/repo/migrations/20230606160240_create_tokens.exs +++ b/priv/repo/migrations/20230606161946_create_tokens.exs @@ -3,7 +3,7 @@ defmodule Hostas.Repo.Migrations.CreateTokens do def change do create table(:tokens) do - add :id, :integer + add :denizen_id, :integer add :expires, :utc_datetime timestamps()