diff options
author | rinpatch <rinpatch@sdf.org> | 2019-06-01 16:29:58 +0300 |
---|---|---|
committer | rinpatch <rinpatch@sdf.org> | 2019-06-01 16:29:58 +0300 |
commit | 65db5e9f528a3f8d8b3c81953fd160a6744dfffd (patch) | |
tree | 9da5234f8a9dd411b59e839eeb38254822939e2f /lib/pleroma/web/oauth/token/query.ex | |
parent | 300d94c62829d0ec961f3ed6c0242dea102ab0ad (diff) | |
parent | f8d4c02431aa634dc74074b93d1cb522e47056ce (diff) | |
download | pleroma-65db5e9f528a3f8d8b3c81953fd160a6744dfffd.tar.gz |
Resolve merge conflicts
Diffstat (limited to 'lib/pleroma/web/oauth/token/query.ex')
-rw-r--r-- | lib/pleroma/web/oauth/token/query.ex | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/lib/pleroma/web/oauth/token/query.ex b/lib/pleroma/web/oauth/token/query.ex new file mode 100644 index 000000000..d92e1f071 --- /dev/null +++ b/lib/pleroma/web/oauth/token/query.ex @@ -0,0 +1,55 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2018 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.OAuth.Token.Query do + @moduledoc """ + Contains queries for OAuth Token. + """ + + import Ecto.Query, only: [from: 2] + + @type query :: Ecto.Queryable.t() | Token.t() + + alias Pleroma.Web.OAuth.Token + + @spec get_by_refresh_token(query, String.t()) :: query + def get_by_refresh_token(query \\ Token, refresh_token) do + from(q in query, where: q.refresh_token == ^refresh_token) + end + + @spec get_by_token(query, String.t()) :: query + def get_by_token(query \\ Token, token) do + from(q in query, where: q.token == ^token) + end + + @spec get_by_app(query, String.t()) :: query + def get_by_app(query \\ Token, app_id) do + from(q in query, where: q.app_id == ^app_id) + end + + @spec get_by_id(query, String.t()) :: query + def get_by_id(query \\ Token, id) do + from(q in query, where: q.id == ^id) + end + + @spec get_expired_tokens(query, DateTime.t() | nil) :: query + def get_expired_tokens(query \\ Token, date \\ nil) do + expired_date = date || Timex.now() + from(q in query, where: fragment("?", q.valid_until) < ^expired_date) + end + + @spec get_by_user(query, String.t()) :: query + def get_by_user(query \\ Token, user_id) do + from(q in query, where: q.user_id == ^user_id) + end + + @spec preload(query, any) :: query + def preload(query \\ Token, assoc_preload \\ []) + + def preload(query, assoc_preload) when is_list(assoc_preload) do + from(q in query, preload: ^assoc_preload) + end + + def preload(query, _assoc_preload), do: query +end |