public function execute()

in modules/quanthub_core/src/Plugin/Action/QuanthubPublish.php [42:74]


  public function execute(ContentEntityInterface $entity = NULL) {
    if (!$state = $entity->get('moderation_state')->getString()) {
      return $this->t(":title  - can't change state",
        [
          ':title' => $entity->getTitle(),
        ]
      );
    }

    // Nothing to do here for published.
    // Moved draft to published and for archive firstly move to draft
    // than to published.
    switch ($state) {
      case QuanthubWorkflowInterface::DRAFT_STATE:
        $entity->set('moderation_state', QuanthubWorkflowInterface::PUBLISHED_STATE);
        $entity->save();
        break;

      case QuanthubWorkflowInterface::ARCHIVED_STATE:
        $entity->set('moderation_state', QuanthubWorkflowInterface::DRAFT_STATE);
        $entity->save();
        $entity->set('moderation_state', QuanthubWorkflowInterface::PUBLISHED_STATE);
        $entity->save();
        break;
    }

    return $this->t(':title state changed to :state',
      [
        ':title' => $entity->getTitle(),
        ':state' => $entity->get('moderation_state')->getString(),
      ]
    );
  }