31 lines
1.0 KiB
Elixir
31 lines
1.0 KiB
Elixir
defmodule Mobilizon.GraphQL.Resolvers.Users.ActivitySettings do
|
|
@moduledoc """
|
|
Handles the user activity settings-related GraphQL calls.
|
|
"""
|
|
|
|
alias Mobilizon.Users
|
|
alias Mobilizon.Users.{ActivitySetting, User}
|
|
|
|
require Logger
|
|
|
|
@spec user_activity_settings(any(), map(), Absinthe.Resolution.t()) ::
|
|
{:ok, list(ActivitySetting.t())} | {:error, :unauthenticated}
|
|
def user_activity_settings(_parent, _args, %{context: %{current_user: %User{} = user}}) do
|
|
{:ok, Users.activity_settings_for_user(user)}
|
|
end
|
|
|
|
def user_activity_settings(_parent, _args, _context) do
|
|
{:error, :unauthenticated}
|
|
end
|
|
|
|
@spec upsert_user_activity_setting(any(), map(), Absinthe.Resolution.t()) ::
|
|
{:ok, ActivitySetting.t()} | {:error, :unauthenticated}
|
|
def upsert_user_activity_setting(_parent, args, %{context: %{current_user: %User{id: user_id}}}) do
|
|
Users.create_activity_setting(Map.put(args, :user_id, user_id))
|
|
end
|
|
|
|
def upsert_user_activity_setting(_parent, _args, _resolution) do
|
|
{:error, :unauthenticated}
|
|
end
|
|
end
|