activitypub-1.0.x-dev/src/Entity/ActivityPubActivityInterface.php

src/Entity/ActivityPubActivityInterface.php
<?php

namespace Drupal\activitypub\Entity;

use Drupal\Core\Entity\ContentEntityInterface;
use Drupal\Core\Entity\EntityInterface;
use Drupal\Core\Entity\EntityPublishedInterface;
use Drupal\user\EntityOwnerInterface;

/**
 * Provides an interface defining an activitypub activity entity type.
 */
interface ActivityPubActivityInterface extends ContentEntityInterface, EntityOwnerInterface, EntityPublishedInterface {

  // Collections constants.
  const FOLLOWERS = 'followers';
  const FOLLOWING = 'following';
  const INBOX = 'inbox';
  const OUTBOX = 'outbox';

  // Activity URL constants.
  const CONTEXT_URL = 'https://www.w3.org/ns/activitystreams';
  const SECURITY_URL = 'https://w3id.org/security/v1';
  const PUBLIC_URL = 'https://www.w3.org/ns/activitystreams#Public';

  // Visibility constants.
  const VISIBILITY_PUBLIC = 1;
  const VISIBILITY_FOLLOWERS = 2;
  const VISIBILITY_UNLISTED = 3;
  const VISIBILITY_PRIVATE = 4;

  /**
   * Returns the object plugin manager.
   *
   * @return \Drupal\activitypub\Services\Type\TypePluginManager
   */
  public function getTypePluginManager();

  /**
   * Gets the activity creation timestamp.
   *
   * @return int
   *   Creation timestamp of the activity.
   */
  public function getCreatedTime();

  /**
   * Returns whether the activity is processed or not.
   *
   * @return boolean
   */
  public function isProcessed();

  /**
   * Returns whether the activity is queued or not.
   *
   * @return boolean
   */
  public function isQueued();

  /**
   * Returns the collection.
   *
   * @return string
   */
  public function getCollection();

  /**
   * Returns the external ID.
   *
   * @return string
   */
  public function getExternalId();

  /**
   * Returns the config id.
   *
   * @return string
   */
  public function getConfigID();

  /**
   * Returns the Activity type.
   *
   * @return string
   */
  public function getType();

  /**
   * Returns the object.
   *
   * @return string
   */
  public function getObject();

  /**
   * Returns the reply.
   *
   * @return string
   */
  public function getReply();

  /**
   * Returns the Activity actor.
   *
   * @return string
   */
  public function getActor();

  /**
   * Returns the target Entity Type.
   *
   * @return string
   */
  public function getTargetEntityTypeId();

  /**
   * Return the target entity id.
   *
   * @return integer
   */
  public function getTargetEntityId();

  /**
   * Get the payload.
   *
   * @return string
   */
  public function getPayLoad();

  /**
   * Get the context.
   *
   * @return string
   */
  public function getContext();

  /**
   * Get array of URL's for the to property.
   *
   * @return array
   */
  public function getTo();

  /**
   * Get visibility.
   *
   * @return integer
   */
  public function getVisibility();

  /**
   * Returns whether the item was read or not.
   *
   * @return bool
   */
  public function isRead();

  /**
   * Returns whether the item is muted or not.
   *
   * @return bool
   */
  public function isMuted();

  /**
   * Returns whether the item is public or not.
   *
   * @return bool
   */
  public function isPublic();

  /**
   * Returns whether the item is for followers only or not.
   *
   * @return bool
   */
  public function isFollowers();

  /**
   * Returns whether the item is unlisted or not.
   *
   * @return bool
   */
  public function isUnlisted();

  /**
   * Returns whether the item is private or not.
   *
   * @return bool
   */
  public function isPrivate();

  /**
   * Whether this activity can be sent to a shared inbox.
   *
   * @return bool
   */
  public function canUseSharedInbox();

  /**
   * Set to audience.
   *
   * @param $to
   *
   * @return $this
   */
  public function setTo($to);

  /**
   * Set the visibility
   *
   * @param int $visibility
   *
   * @return $this
   */
  public function setVisibility(int $visibility);

  /**
   * Set the activity visibility to public.
   *
   * @return $this
   */
  public function setPublic();

  /**
   * Set the activity visibility to followers only.
   *
   * @return $this
   */
  public function setFollowers();

  /**
   * Set the activity visibility to unlisted.
   *
   * @return $this
   */
  public function setUnlisted();

  /**
   * Set the activity visibility to private.
   *
   * @return $this
   */
  public function setPrivate();

  /**
   * Mute an activity.
   *
   * @return $this
   */
  public function mute();

  /**
   * Unmute an activity.
   *
   * @return $this
   */
  public function unMute();

  /**
   * Get the raw to value.
   *
   * @return string
   */
  public function getToRaw();

  /**
   * Build the activity.
   *
   * @return array
   */
  public function buildActivity();

  /**
   * Inbox pre save call.
   *
   * @param $doSave
   *   Whether to save the activity, defaults to TRUE.
   */
  public function preInboxSave(&$doSave);

  /**
   * Outbox pre save call.
   *
   * @param \Drupal\Core\Entity\EntityInterface $entity
   *   The entity being saved, usually a node.
   * @param \Drupal\activitypub\Entity\ActivityPubTypeInterface $activityPubType
   *   The activitypub type.
   * @param $doSave
   *   Whether to save the activity, defaults to TRUE.
   */
  public function preOutboxSave(EntityInterface $entity, ActivityPubTypeInterface $activityPubType, &$doSave);

  /**
   * Act on entity delete.
   *
   * @param \Drupal\Core\Entity\EntityInterface $entity
   *   The entity that is being deleted. It is a content entity, apart from the
   *   user or activitypub actor.
   */
  public function onEntityDelete(EntityInterface $entity);

  /**
   * Do inbox processing.
   *
   * @param null $type
   *   The activity pub type.
   */
  public function doInboxProcess($type = NULL);

  /**
   * Returns whether the activity can be queued.
   *
   * @return bool
   */
  public function canBeQueued();

  /**
   * Returns whether the activity can be undone.
   *
   * @return bool
   */
  public function canBeUndone();

  /**
   * Returns whether a type is enabled or not.
   *
   * @param $type
   *
   * @return bool
   */
  public function typeIsEnabled($type);

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc