LakalaAccountController.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. namespace console\controllers;
  3. use bizGhs\lakala\classes\LakalaAccountClass;
  4. use yii\console\Controller;
  5. use yii\console\ExitCode;
  6. class LakalaAccountController extends Controller
  7. {
  8. /**
  9. * Refresh Lakala authorization states from CLI.
  10. *
  11. * Usage: ./yii lakala-account/refresh-authorize-states 1,2,3
  12. *
  13. * @param string $accountIds Comma-separated account IDs.
  14. * @return int
  15. */
  16. public function actionRefreshAuthorizeStates($accountIds)
  17. {
  18. $values = explode(',', (string)$accountIds);
  19. $ids = [];
  20. foreach ($values as $value) {
  21. $value = trim($value);
  22. if ($value === '' || !ctype_digit($value) || (int)$value <= 0) {
  23. $this->stderr('Invalid Lakala account ID: ' . $value . PHP_EOL);
  24. return ExitCode::USAGE;
  25. }
  26. $ids[] = (int)$value;
  27. }
  28. $ids = array_values(array_unique($ids));
  29. if (empty($ids)) {
  30. $this->stderr('At least one Lakala account ID is required.' . PHP_EOL);
  31. return ExitCode::USAGE;
  32. }
  33. $failed = 0;
  34. foreach ($ids as $accountId) {
  35. if (!LakalaAccountClass::refreshAuthorizeStates($accountId)) {
  36. $failed++;
  37. }
  38. }
  39. $this->stdout('Lakala authorize refresh completed: total=' . count($ids) . ', failed=' . $failed . ', accountIds=' . $accountIds . PHP_EOL);
  40. return $failed === 0 ? ExitCode::OK : ExitCode::UNSPECIFIED_ERROR;
  41. }
  42. }