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()