OrderDeferController class
Введение
- Описание: Контроллер
OrderDeferControllerпредоставляет конечную точку API по переносу/отмене заказа. - Маршруты: Обрабатываeтся POST-запрос по маршруту
/order/defer.
Формат запроса
Тело запроса: JSON-объект, содержащий данные заказа, описан в классе OrderDeferDto.
{
"orderId": 943129,
"driverRefuseReasonId": 12,
"plannedDateDuration": 360,
"rescheduledPlannedDate": "2024-11-15",
"lat": 0.0,
"lng": 0.0,
"isRecalled": true
}
Валидация и преобразование данных
- Валидация ввода: Производится валидация полей: rescheduledPlannedDate, driverRefuseReasonId
Основная логика
- Получение заказа: Контроллер получает данные заказа по
orderId. - Проверка причины отказа: Проверяется текущая причина отказа
(driverRefuseReasonId) с данными из таблицы refuse_reason, а именно с причиной
REPROGRAMACION.- Получается текущий счётчик переносов заказа (rescheduleCount).
- Если кол переносов меньше 4, то тогда назначаем статус
RescheduleOnDelivering. Иначе назначаемRecallи обнуляем счётчик rescheduleCount.
- Если условие из пункта 2 не выполняется:
Если флаг
isRecalledравен true, устанавливается статусRefuse. В противном случае - назначается статусRescheduleOnDelivering.
Взаимодействие с микросервисами
- Hasura: Получение и обновление данных по заказу.
- Успешный перенос/отмена заказа: Возвращается статус
200 OK{ "updated": true } - Ошибки обработки:
- Некорректные json данные. Ожидаемый статус -
400 badRequest. - Внутренние ошибки. Ожидаемый статус -
500 internalServerError.
- Некорректные json данные. Ожидаемый статус -
- Annotations
-
- @Routes(prefix: '/')
Constructors
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- orderRepository → OrderRepository
-
final
- router → Router
-
no setter
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
handler(
Request request) → Future< JsonResponse< void> > -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited