Services - gro1vy/DeliverServiceAPI GitHub Wiki
UserRepository
Данный сервис используется в контроллере AccountController.
RegisterAsync
Данный метод необходим для создания пользовательского аккаунта.
Входные данные:
- Принимает модель RegistrationRequestDTO.
Возврат:
- Вернет модель TokenResponseDTO, если регистрация прошла успешно.
- Создаст исключение ValidationProblemException, если была допущена ошибка в данных.
LoginAsync
Данный метод необходим для входа в уже существующий аккаунт.
Входные данные:
- Принимает модель LoginRequestDTO.
Возврат:
- Вернет модель TokenResponseDTO, если регистрация прошла успешно.
- Создаст исключение ValidationProblemException, если была допущена ошибка в данных.
- Создаст исключение NotFoundException, если пользователь с таким паролем и почтой не найден.
LogoutAllAsync
Данный метод необходим для того, чтобы выйти из всех текущих сессий, например, на разных устройствах.
Входные данные:
- Принимает Guid userId.
Возврат:
- Ничего не вернет.
LogoutCurrentAsync
Данный метод необходим для того, чтобы выйти из текущей сессии, например, только на текущем устройстве.
Входные данные:
- Принимает Guid userId и Guid JTICurrentAccessToken.
Возврат:
- Ничего не вернет.
RefreshAsync
Данный метод необходим для обновления access токена с протекшим временем жизни, и только таким. Несвязанные access токены с refresh токенами нельзя обновить.
Входные данные:
- Принимает модель RefreshDTO.
Возврат:
- Вернет модель TokenResponseDTO, если обновление прошло успешно.
- Создаст исключение UnauthorizedException, если access токен не валиден, либо не связан с refresh токеном, либо refresh токен не найден.
GetProfileAsync
Данный метод необходим для просмотра текущей информации о пользователе.
Входные данные:
- Принимает Guid userId.
Возврат:
- Вернет модель UserResponseDTO , если информация получена успешно.
- Создаст исключение NotFoundException, если пользователь не найден.
EditProfileAsync
Данный метод необходим для изменения информации о пользователе.
Входные данные:
- Принимает принимает модель UserEditRequestDTO и Guid userId.
Возврат:
- Вернет модель UserResponseDTO, если информация обновлена успешно.
- Создаст исключение ValidationProblemException, если была допущена ошибка в данных.
- Создаст исключение NotFoundException, если пользователь не найден.
AddressService
Данный сервис используется в контроллере AddressController.
GetChildObjectsAsync
Данный метод необходим для поиска детей родительского элемента в дереве адресных элементов.
Входные данные:
- Принимает int parentObjectId (id родительского элемента) и string? name (название нужного элемента).
Возврат:
- Вернет список моделей SearchAddressDTO, если информация получена успешно.
GetPathFromRootToObjectAsync
Данный метод необходим для получения цепочки адресных элементов от корня до указанного элемента.
Входные данные:
- Принимает Guid ObjectGuid (id последнего элемента цепочки).
Возврат:
- Вернет список моделей SearchAddressDTO, если информация получена успешно.
- Создаст исключение NotFoundException, если элемент не найден.
GetRegionTimeZoneAsync
Данный метод необходим для получения разницы времени в данном регионе с Москвой.
Входные данные:
- Принимает Guid ObjectGuid (id адресного элемента).
Возврат:
- Вернет список моделей RegionTimeZoneDTO, если информация получена успешно.
- Создаст исключение NotFoundException, если элемент не найден.
BasketService
Данный сервис используется в контроллере BasketController.
GetDishInBasketAsync
Данный метод необходим для получения блюд в корзине пользователя.
Входные данные:
- Принимает Guid userId.
Возврат:
- Вернет список моделей DishBasketDTO, если информация получена успешно.
PutDishInBasketAsync
Данный метод необходим для добавления блюда в корзину пользователя.
Входные данные:
- Принимает Guid userId и Guid dishId.
Возврат:
- Ничего не вернет.
- Создаст исключение NotFoundException, если блюдо или пользователь не найдены.
RemoveDishFromBasketAsync
Данный метод необходим для удаления блюда из корзины пользователя.
Входные данные:
- Принимает Guid userId, Guid dishId и bool increase (нужно ли удалить все блюда данного типа).
Возврат:
- Ничего не вернет.
- Создаст исключение NotFoundException, если блюдо или пользователь не найдены.
DishService
Данный сервис используется в контроллере DishController.
GetDishesAsync
Данный метод необходим для получения блюд, которые доставляет сервис.
Входные данные:
- Принимает catrgory, bool isVegetarian, dishSorting, int page.
Возврат:
- Вернет модель DishPagedListDTO.
- Создаст исключение BadRequestException, если была допущена ошибка в данных.
GetDishAsync
Данный метод необходим для получения информации о блюде
Входные данные:
- Принимает Guid id блюда.
Возврат:
- Вернет модель DishPagedListDTO.
- Создаст исключение NotFoundException, если блюдо не было найдено.
CheckToSetRatingAsync
Данный метод необходим для проверки на то, может ли пользователь поставить оценку.
Входные данные:
- Принимает Guid dishId и Guid userId.
Возврат:
- Вернет модель DishPagedListDTO.
- Создаст исключение NotFoundException, если блюдо не было найдено.
SetRatingAsync
Данный метод необходим для того, чтобы пользователь мог поставить оценку заказанному блюду.
Входные данные:
- Принимает Guid dishId и Guid userId.
Возврат:
- Вернет модель DishPagedListDTO.
- Создаст исключение BadRequestException, если была допущена ошибка в данных. * Создаст исключение NotFoundException, если блюдо не было найдено.
OrderService
GetOrderInfoAsync
Данный метод необходим получения информации от заказе.
Входные данные:
- Принимает Guid orderId и Guid userId.
Возврат:
- Вернет модель OrderDTO. * Создаст исключение NotFoundException, если указанный заказ не найден.
GetOrderInfoListAsync
Данный метод необходим получения информации о всех заказа пользователя.
Входные данные:
- Принимает Guid userId.
Возврат:
- Вернет список моделей OrderInfoDTO.
CreateOrderFormBasketAsync
Данный метод необходим создания заказа из текущей корзины пользователя.
Входные данные:
- Принимает модель OrderCreateDTO и Guid userId.
Возврат:
- Ничего не вернет.
ConfirmOrderDeliveryAsync
Данный метод необходим создания для подтверждения заказа.
Входные данные:
- Принимает Guid orderId и Guid userId.
Возврат:
- Ничего не вернет. * Создаст исключение BadRequestException, если указано неправильное время доставки. * Создаст исключение NotFoundException, если указанный заказ не найден.