You are here

interface TeamMemberRoleStorageInterface in Apigee Edge 8

Defines an interface for team member role entity storage classes.

Hierarchy

Expanded class hierarchy of TeamMemberRoleStorageInterface

All classes that implement TeamMemberRoleStorageInterface

File

modules/apigee_edge_teams/src/Entity/Storage/TeamMemberRoleStorageInterface.php, line 31

Namespace

Drupal\apigee_edge_teams\Entity\Storage
View source
interface TeamMemberRoleStorageInterface extends ContentEntityStorageInterface {

  /**
   * Loads team member role object by developer and team.
   *
   * WARNING: The fact whether the developer is actually member of the team
   * (company) in Apigee Edge is not being verified here. The caller should
   * perform this check if needed. Thanks for this approach we can minimize
   * the API calls that are being sent to Apigee Edge.
   *
   * @param \Drupal\Core\Session\AccountInterface $account
   *   User entity object of a developer.
   * @param \Drupal\apigee_edge_teams\Entity\TeamInterface $team
   *   Team entity object.
   *
   * @return \Drupal\apigee_edge_teams\Entity\TeamMemberRoleInterface|null
   *   Team member role object if the developer has team roles within a team,
   *   null otherwise.
   */
  public function loadByDeveloperAndTeam(AccountInterface $account, TeamInterface $team) : ?TeamMemberRoleInterface;

  /**
   * Loads all team roles of a developer within all its teams.
   *
   * WARNING: The fact whether the developer is actually member of the team
   * (company) in Apigee Edge is not being verified here. The caller should
   * perform this check if needed. Thanks for this approach we can minimize
   * the API calls that are being sent to Apigee Edge.
   *
   * @param \Drupal\Core\Session\AccountInterface $account
   *   User entity object of a developer.
   *
   * @return \Drupal\apigee_edge_teams\Entity\TeamMemberRoleInterface[]
   *   Array of team member role objects.
   */
  public function loadByDeveloper(AccountInterface $account) : array;

  /**
   * Loads all team roles of all team members within a team.
   *
   * WARNING: The fact whether the developer is actually member of the team
   * (company) in Apigee Edge is not being verified here. The caller should
   * perform this check if needed. Thanks for this approach we can minimize
   * the API calls that are being sent to Apigee Edge.
   *
   * @param \Drupal\apigee_edge_teams\Entity\TeamInterface $team
   *   Team entity object.
   *
   * @return \Drupal\apigee_edge_teams\Entity\TeamMemberRoleInterface[]
   *   Array of team member role objects related to a team.
   */
  public function loadByTeam(TeamInterface $team) : array;

  /**
   * Adds team roles to a developer in a team.
   *
   * @param \Drupal\Core\Session\AccountInterface $account
   *   User entity object of a developer.
   * @param \Drupal\apigee_edge_teams\Entity\TeamInterface $team
   *   Team entity object.
   * @param string[] $roles
   *   Array of team role entity ids.
   *
   * @return \Drupal\apigee_edge_teams\Entity\TeamMemberRoleInterface
   *   The updated team member role entity.
   *
   * @throws \Drupal\apigee_edge_teams\Exception\InvalidArgumentException
   * @throws \Drupal\Core\Entity\EntityStorageException
   */
  public function addTeamRoles(AccountInterface $account, TeamInterface $team, array $roles) : TeamMemberRoleInterface;

  /**
   * Removes team roles of a developer within a team.
   *
   * If you would like to remove a developer from a team (remove its "member"
   * team role) use the team membership manager service.
   *
   * @param \Drupal\Core\Session\AccountInterface $account
   *   User entity object of a developer.
   * @param \Drupal\apigee_edge_teams\Entity\TeamInterface $team
   *   Team entity object.
   * @param string[] $roles
   *   Array of team role entity ids.
   *
   * @return \Drupal\apigee_edge_teams\Entity\TeamMemberRoleInterface
   *   The updated team member role entity.
   */
  public function removeTeamRoles(AccountInterface $account, TeamInterface $team, array $roles) : TeamMemberRoleInterface;

}

Members

Namesort descending Modifiers Type Description Overrides
ContentEntityStorageInterface::createWithSampleValues public function Creates an entity with sample field values. 2
EntityStorageInterface::create public function Constructs a new entity object, without permanently saving it. 1
EntityStorageInterface::delete public function Deletes permanently saved entities. 1
EntityStorageInterface::deleteRevision public function Delete a specific entity revision. 4
EntityStorageInterface::FIELD_LOAD_CURRENT constant Load the most recent version of an entity's field data.
EntityStorageInterface::FIELD_LOAD_REVISION constant Load the version of an entity's field data specified in the entity.
EntityStorageInterface::getAggregateQuery public function Gets an aggregated query instance. 1
EntityStorageInterface::getEntityType public function Gets the entity type definition. 1
EntityStorageInterface::getEntityTypeId public function Gets the entity type ID. 1
EntityStorageInterface::getQuery public function Gets an entity query instance. 1
EntityStorageInterface::hasData public function Determines if the storage contains any data. 1
EntityStorageInterface::load public function Loads one entity. 1
EntityStorageInterface::loadByProperties public function Load entities by their property values. 1
EntityStorageInterface::loadMultiple public function Loads one or more entities. 1
EntityStorageInterface::loadRevision public function Load a specific entity revision. 4
EntityStorageInterface::loadUnchanged public function Loads an unchanged entity from the database. 1
EntityStorageInterface::resetCache public function Resets the internal, static entity cache. 1
EntityStorageInterface::restore public function Restores a previously saved entity. 1
EntityStorageInterface::save public function Saves the entity permanently. 1
RevisionableStorageInterface::getLatestRevisionId public function Returns the latest revision identifier for an entity. 2
RevisionableStorageInterface::loadMultipleRevisions public function Loads multiple entity revisions. 2
TeamMemberRoleStorageInterface::addTeamRoles public function Adds team roles to a developer in a team. 1
TeamMemberRoleStorageInterface::loadByDeveloper public function Loads all team roles of a developer within all its teams. 1
TeamMemberRoleStorageInterface::loadByDeveloperAndTeam public function Loads team member role object by developer and team. 1
TeamMemberRoleStorageInterface::loadByTeam public function Loads all team roles of all team members within a team. 1
TeamMemberRoleStorageInterface::removeTeamRoles public function Removes team roles of a developer within a team. 1
TranslatableRevisionableStorageInterface::createRevision public function Creates a new revision starting off from the specified entity object. Overrides RevisionableStorageInterface::createRevision 2
TranslatableRevisionableStorageInterface::getLatestTranslationAffectedRevisionId public function Returns the latest revision affecting the specified translation. 2
TranslatableStorageInterface::createTranslation public function Constructs a new entity translation object, without permanently saving it. 2