}
}
+ case 'ORDER_CANCELLED':
+ $requiredFields = ['campaignId', 'orderId', 'cancelledAt', 'items'];
+ foreach ($requiredFields as $field) {
+ if (!isset($data[$field])) {
+ Yii::$app->response->statusCode = 400;
+ return $this->asJson([
+ 'error' => [
+ 'type' => 'WRONG_EVENT_FORMAT',
+ 'message' => "Отсутствует обязательное поле: {$field}"
+ ]
+ ]);
+ }
+ }
+ $campaignId = $data['campaignId'];
+ $orderId = $data['orderId'];
+ $orderData = MarketplaceService::fetchOrder($campaignId, $orderId);
+ if (empty($orderData)) {
+ Yii::$app->response->statusCode = 400;
+ return $this->asJson([
+ 'error' => [
+ 'type' => 'WRONG_EVENT_FORMAT',
+ 'message' => "Не удалось получить заказ с orderId: {$orderId} для кампании: {$campaignId}"
+ ]
+ ]);
+ }
+ $result = MarketplaceService::processOrders($orderData);
+ return $this->asJson([
+ 'success' => true,
+ 'message' => "ORDER_CANCELLED событие обработано успешно",
+ 'result' => $result
+ ]);
+
+ case 'ORDER_RETURN_CREATED':
+ $requiredFields = ['campaignId', 'orderId', 'returnId', 'returnType', 'createdAt', 'items'];
+ foreach ($requiredFields as $field) {
+ if (!isset($data[$field])) {
+ Yii::$app->response->statusCode = 400;
+ return $this->asJson([
+ 'error' => [
+ 'type' => 'WRONG_EVENT_FORMAT',
+ 'message' => "Отсутствует обязательное поле: {$field}"
+ ]
+ ]);
+ }
+ }
+ $campaignId = $data['campaignId'];
+ $orderId = $data['orderId'];
+ $orderData = MarketplaceService::fetchOrder($campaignId, $orderId);
+ if (empty($orderData)) {
+ Yii::$app->response->statusCode = 400;
+ return $this->asJson([
+ 'error' => [
+ 'type' => 'WRONG_EVENT_FORMAT',
+ 'message' => "Не удалось получить заказ с orderId: {$orderId} для кампании: {$campaignId}"
+ ]
+ ]);
+ }
+ $result = MarketplaceService::processOrders($orderData);
+ return $this->asJson([
+ 'success' => true,
+ 'message' => "ORDER_RETURN_CREATED событие обработано успешно",
+ 'result' => $result
+ ]);
+
default:
Yii::info("Неизвестный тип события: {$eventType}");
return $this->asJson([