StatusMapper.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\AsynchronousOperations\Model;
  7. use Magento\Framework\Bulk\OperationInterface;
  8. use Magento\Framework\Bulk\BulkSummaryInterface;
  9. /**
  10. * Class StatusMapper
  11. */
  12. class StatusMapper
  13. {
  14. /**
  15. * Map operation status to bulk summary status
  16. *
  17. * @param int $operationStatus
  18. * @return null|int
  19. */
  20. public function operationStatusToBulkSummaryStatus($operationStatus)
  21. {
  22. $statusMapping = [
  23. OperationInterface::STATUS_TYPE_NOT_RETRIABLY_FAILED => BulkSummaryInterface::FINISHED_WITH_FAILURE,
  24. OperationInterface::STATUS_TYPE_RETRIABLY_FAILED => BulkSummaryInterface::FINISHED_WITH_FAILURE,
  25. OperationInterface::STATUS_TYPE_REJECTED => BulkSummaryInterface::FINISHED_WITH_FAILURE,
  26. OperationInterface::STATUS_TYPE_COMPLETE => BulkSummaryInterface::FINISHED_SUCCESSFULLY,
  27. OperationInterface::STATUS_TYPE_OPEN => BulkSummaryInterface::IN_PROGRESS,
  28. BulkSummaryInterface::NOT_STARTED => BulkSummaryInterface::NOT_STARTED
  29. ];
  30. if (isset($statusMapping[$operationStatus])) {
  31. return $statusMapping[$operationStatus];
  32. }
  33. return null;
  34. }
  35. /**
  36. * Map bulk summary status to operation status
  37. *
  38. * @param int $bulkStatus
  39. * @return int|null
  40. */
  41. public function bulkSummaryStatusToOperationStatus($bulkStatus)
  42. {
  43. $statusMapping = [
  44. BulkSummaryInterface::FINISHED_WITH_FAILURE => [
  45. OperationInterface::STATUS_TYPE_NOT_RETRIABLY_FAILED,
  46. OperationInterface::STATUS_TYPE_RETRIABLY_FAILED,
  47. OperationInterface::STATUS_TYPE_REJECTED
  48. ],
  49. BulkSummaryInterface::FINISHED_SUCCESSFULLY => OperationInterface::STATUS_TYPE_COMPLETE,
  50. BulkSummaryInterface::IN_PROGRESS => OperationInterface::STATUS_TYPE_OPEN,
  51. BulkSummaryInterface::NOT_STARTED => BulkSummaryInterface::NOT_STARTED
  52. ];
  53. if (isset($statusMapping[$bulkStatus])) {
  54. return $statusMapping[$bulkStatus];
  55. }
  56. return null;
  57. }
  58. }