public function execute()

in modules/quanthub_core/src/Plugin/Action/QuanthubDraft.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 for draft, moved archive draft.
    // Published node we firstly move to archive than to draft.
    switch ($state) {
      case QuanthubWorkflowInterface::ARCHIVED_STATE:
        $entity->set('moderation_state', QuanthubWorkflowInterface::DRAFT_STATE);
        $entity->save();

        break;

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

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