contrib_todo_list-1.1.1/src/data/TodoState.php

src/data/TodoState.php
<?php

namespace Drupal\contrib_todo_list\data;

/**
 * Class TodoState
 */
class TodoState {
  const PENDING = 'pending';
  const IN_PROGRESS = 'in-progress';
  const COMPLETED = 'completed';

  /**
   * Define states mapping.
   */
  private static function getStatesMapping(): array {
    return [
      self::PENDING => 'Pending',
      self::IN_PROGRESS => 'In progress',
      self::COMPLETED => 'Completed',
    ];
  }

  /**
   * Get state constant from key word.
   *
   * @param string $key
   *
   * @return string
   */
  public static function getStateFromKey(string $key): string {
    return self::getStatesMapping()[$key] ?? self::PENDING;
  }

  /**
   * Get available state keys.
   *
   * @return array
   */
  public static function getStateKeys(): array {
    return array_keys(self::getStatesMapping());
  }

  /**
   * Get available state labels.
   *
   * @return array
   */
  public static function getStateLabels(): array {
    return array_values(self::getStatesMapping());
  }

  /**
   * Get available states.
   *
   * @return array
   */
  public static function getStates(): array {
    return self::getStatesMapping();
  }

  /**
   * Get key by label.
   *
   * @param string $label
   *
   * @return string
   */
  public static function getKeyByLabel(string $label): string {
    $states = array_flip(self::getStatesMapping());
    return $states[$label] ?? self::PENDING;
  }
}

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

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