View Source Bonfire.Social.Graph.Aliases (Bonfire v0.9.11-social-beta.6)

Implements aliases (i.e. "also known as") for characters in Bonfire.

This module provides functionality for managing aliases, including adding, removing, and querying aliases. It also implements ActivityPub federation for the "Move" activity.

Summary

Functions

Adds an alias to a user, linking it to a another character.

Retrieves all aliases for a given object (i.e target).

Retrieves all aliases for a given subject.

Retrieves all aliased objects for a given subject.

Retrieves all alias subjects for a given object (i.e target).

Checks if a local user is also known as the target.

Publishes an ActivityPub activity for a move operation.

Processes an incoming ActivityPub Move activity.

Checks if an alias relationship exists between a subject and a target.

Retrieves an alias between a subject and an object, if one exists

Lists entities who aliased a a given user.

Lists aliases for a given user.

Lists entities who aliased the current user.

Lists aliases for the current user.

Initiates a move operation for migrating a local user to another instance.

Removes an alias relationship between a user and a target.

Functions

add(user, target, opts \\ [])

Adds an alias to a user, linking it to a another character.

Examples

iex> Bonfire.Social.Graph.Aliases.add(user, target)
{:ok, %Alias{}}

all_by_object(object, opts \\ [])

Retrieves all aliases for a given object (i.e target).

Examples

iex> Bonfire.Social.Graph.Aliases.all_by_object(object)
[%Alias{}, ...]

all_by_subject(user, opts \\ [])

Retrieves all aliases for a given subject.

Examples

iex> Bonfire.Social.Graph.Aliases.all_by_subject(user)
[%Alias{}, ...]

all_objects_by_subject(user, opts \\ [])

Retrieves all aliased objects for a given subject.

Examples

iex> Bonfire.Social.Graph.Aliases.all_objects_by_subject(user)
[%Object{}, ...]

all_subjects_by_object(object, opts \\ [])

Retrieves all alias subjects for a given object (i.e target).

Examples

iex> Bonfire.Social.Graph.Aliases.all_subjects_by_object(object)
[%Subject{}, ...]

also_known_as?(local_ap_id, target)

Checks if a local user is also known as the target.

Examples

iex> Bonfire.Social.Graph.Aliases.also_known_as?("http://example.com/user", target)
true

iex> Bonfire.Social.Graph.Aliases.also_known_as?(%User{}, target)
true

ap_publish_activity(subject, arg2, target)

Publishes an ActivityPub activity for a move operation.

Examples

iex> Bonfire.Social.Graph.Aliases.ap_publish_activity(subject, :move, target)

ap_receive_activity(subject, activity, origin_object)

Processes an incoming ActivityPub Move activity.

Examples

iex> Bonfire.Social.Graph.Aliases.ap_receive_activity(subject, activity, origin_object)
{:ok, :moved}

exists?(subject, target)

Checks if an alias relationship exists between a subject and a target.

Examples

iex> Bonfire.Social.Graph.Aliases.exists?(subject, target)
true

federation_module()

Callback implementation for Bonfire.Federate.ActivityPub.FederationModules.federation_module/0.

get(subject, object, opts \\ [])

Retrieves an alias between a subject and an object, if one exists

Examples

iex> Bonfire.Social.Graph.Aliases.get(subject, object)
{:ok, %Alias{}}

get!(subject, object, opts \\ [])

list_aliased(user, opts \\ [])

Lists entities who aliased a a given user.

Examples

iex> Bonfire.Social.Graph.Aliases.list_aliased(user)
[%AliasedEntity{}, ...]

list_aliases(user, opts \\ [])

Lists aliases for a given user.

Examples

iex> Bonfire.Social.Graph.Aliases.list_aliases(user)
[%Alias{}, ...]

list_my_aliased(current_user, opts \\ [])

Lists entities who aliased the current user.

Examples

iex> Bonfire.Social.Graph.Aliases.list_my_aliased(current_user)
[%AliasedEntity{}, ...]

list_my_aliases(current_user, opts \\ [])

Lists aliases for the current user.

Examples

iex> Bonfire.Social.Graph.Aliases.list_my_aliases(current_user)
[%Alias{}, ...]

move(subject, target)

Initiates a move operation for migrating a local user to another instance.

Examples

iex> Bonfire.Social.Graph.Aliases.move(subject, target)
{:ok, :moved}

query(filters, opts)

query_module()

Callback implementation for Bonfire.Common.ContextModule.query_module/0.

remove(user, target)

Removes an alias relationship between a user and a target.

Examples

iex> Bonfire.Social.Graph.Aliases.remove(user, target)

schema_module()

Callback implementation for Bonfire.Common.ContextModule.schema_module/0.