embedded_schema do
field(:banner, :map, default: %{})
+ field(:background, :string, default: nil)
field(:source_data, :map, default: %{})
field(:note_count, :integer, default: 0)
field(:follower_count, :integer, default: 0)
field(:no_rich_text, :boolean, default: false)
field(:ap_enabled, :boolean, default: false)
field(:is_moderator, :boolean, default: false)
- field(:keys, :map, default: %{})
+ field(:keys, :string, default: nil)
+ field(:settings, :map, default: nil)
+ field(:magic_key, :string, default: nil)
+ field(:uri, :string, default: nil)
+ field(:topic, :string, default: nil)
+ field(:hub, :string, default: nil)
+ # topic, subject, salmon, subscribe_address, uri
end
def set_activation_status(info, deactivated) do
def remove_from_block(info, blocked) do
set_blocks(info, List.delete(info.blocks, blocked))
end
+
+ def set_domain_blocks(info, domain_blocks) do
+ params = %{domain_blocks: domain_blocks}
+
+ info
+ |> cast(params, [:domain_blocks])
+ |> validate_required([:domain_blocks])
+ end
+
+ def add_to_domain_block(info, domain_blocked) do
+ set_domain_blocks(info, Enum.uniq([domain_blocked | info.domain_blocks]))
+ end
+
+ def remove_from_domain_block(info, domain_blocked) do
+ set_domain_blocks(info, List.delete(info.domain_blocks, domain_blocked))
+ end
+
+ def set_keys(info, keys) do
+ params = %{keys: keys}
+
+ info
+ |> cast(params, [:keys])
+ |> validate_required([:keys])
+ end
+
+ def remote_user_creation(info, params) do
+ info
+ |> cast(params, [
+ :ap_enabled,
+ :source_data,
+ :banner,
+ :locked,
+ :magic_key,
+ :uri,
+ :hub,
+ :topic
+ ])
+ end
+
+ def user_upgrade(info, params) do
+ info
+ |> cast(params, [
+ :ap_enabled,
+ :source_data,
+ :banner,
+ :locked,
+ :magic_key
+ ])
+ end
+
+ def profile_update(info, params) do
+ info
+ |> cast(params, [
+ :locked,
+ :no_rich_text,
+ :default_scope
+ ])
+ end
+
+ def set_source_data(info, source_data) do
+ params = %{source_data: source_data}
+
+ info
+ |> cast(params, [:source_data])
+ |> validate_required([:source_data])
+ end
end