+
+ def use_token(%Authorization{used: true}), do: {:error, "already used"}
+
+ @spec delete_user_authorizations(User.t()) :: {integer(), any()}
+ def delete_user_authorizations(%User{} = user) do
+ user
+ |> delete_by_user_query
+ |> Repo.delete_all()
+ end
+
+ def delete_by_user_query(%User{id: user_id}) do
+ from(a in __MODULE__, where: a.user_id == ^user_id)
+ end
+
+ @doc "gets auth for app by token"
+ @spec get_by_token(App.t(), String.t()) :: {:ok, t()} | {:error, :not_found}
+ def get_by_token(%App{id: app_id} = _app, token) do
+ from(t in __MODULE__, where: t.app_id == ^app_id and t.token == ^token)
+ |> Repo.find_resource()
+ end