You are here

public function ActionLinkController::flag in Flag Lists 4.0.x

Same name and namespace in other branches
  1. 8 src/Controller/ActionLinkController.php \Drupal\flag_lists\Controller\ActionLinkController::flag()

Performs a flagging when called via a route.

In addition to this it also handles the creation of a FlagListItem.

Parameters

\Drupal\flag\FlagInterface $flag: The flag entity.

int $entity_id: The flaggable entity ID.

string $flag_list: The flag list from the link.

Return value

\Drupal\Core\Ajax\AjaxResponse|null The response object, only if successful.

See also

\Drupal\flag\Plugin\Reload

\Drupal\flag_lists\Entity\FlagListItem

1 string reference to 'ActionLinkController::flag'
flag_lists.routing.yml in ./flag_lists.routing.yml
flag_lists.routing.yml

File

src/Controller/ActionLinkController.php, line 97

Class

ActionLinkController
Controller responses to flag and unflag action links.

Namespace

Drupal\flag_lists\Controller

Code

public function flag(FlagInterface $flag, $entity_id, $flag_list) {

  /** @var \Drupal\Core\Entity\EntityInterface $entity */
  $entity = $this->flagService
    ->getFlaggableById($flag, $entity_id);
  try {
    $this->flagService
      ->flag($flag, $entity);
  } catch (\LogicException $e) {

    // Fail silently so we return to the entity, which will show an updated
    // link for the existing state of the flag.
  }

  // Create the flag list item.
  $actionLinkHelper = new ActionLinkHelper($this->flagListsService);
  $actionLinkHelper
    ->flagHelper($flag, $entity_id, $flag_list);
  return $this
    ->generateResponse($flag, $entity, $flag_list, $flag
    ->getMessage('flag'));
}