Добавлен POST /api/v1/delivery/suggest-address

This commit is contained in:
Раис Юсупалиев
2026-03-29 02:05:21 +03:00
parent 17772e5337
commit 4a3737999f
11 changed files with 666 additions and 23 deletions
+5 -5
View File
@@ -1,7 +1,7 @@
# Spec Tasks Index
> ⚠️ This file is generated. Do not edit manually.
> Generated at (UTC): `2026-03-25T18:23:56+00:00`
> Generated at (UTC): `2026-03-28T21:02:29+00:00`
## Tasks
@@ -28,11 +28,11 @@
| 018 | DONE | 2026-03-16 | Add optional parcel type filter to price request | `spec/tasks/018_add_optional_parcel_type_filter_to_price_request.md` |
| 019 | TODO | 2026-03-14 | Add CDEK order creation endpoint | `spec/tasks/019_add_cdek_order_creation_endpoint.md` |
| 020 | DONE | 2026-03-21 | Rename price request model and use cities_map for CDEK codes | `spec/tasks/020_rename_price_request_model_and_use_cities_map_for_cdek_codes.md` |
| 021 | TODO | 2026-03-25 | Add address suggestion adapter and country provider mapping | `spec/tasks/021_add_address_suggestion_adapter_and_country_mapping.md` |
| 022 | TODO | 2026-03-25 | Add address suggestion endpoint | `spec/tasks/022_add_address_suggestion_endpoint.md` |
| 021 | DONE | 2026-03-25 | Add address suggestion adapter and country provider mapping | `spec/tasks/021_add_address_suggestion_adapter_and_country_mapping.md` |
| 022 | DONE | 2026-03-25 | Add address suggestion endpoint | `spec/tasks/022_add_address_suggestion_endpoint.md` |
## Summary
- Total: **23**
- TODO: **3**
- DONE: **20**
- TODO: **1**
- DONE: **22**
+4 -2
View File
@@ -47,7 +47,7 @@
### Controller (`app/controllers/v1/delivery.py`)
- `POST /api/v1/delivery/price` — принимает `DeliveryCalculationRequest`, возвращает `list[DeliveryPrice]`
- `POST /api/v1/delivery/address/suggest` — принимает `AddressSuggestRequest`, возвращает `list[AddressSuggestion]`
- `POST /api/v1/delivery/suggest-address` — принимает `AddressSuggestRequest`, возвращает `list[AddressSuggestion]`
- `POST /api/v1/delivery/order` — принимает `OrderCreateRequest`, возвращает `OrderCreateResponse`
- Парсинг и валидация входных данных через Pydantic
- Маппинг исключений сервиса в HTTP-ответы
@@ -151,8 +151,10 @@ limit: int | None
### Выходная: `AddressSuggestion`
```
provider: str
address: str
street: str | None
house: str | None
flat: str | None
postal_code: str | None
```
@@ -1,7 +1,7 @@
---
id: 021
title: Add address suggestion adapter and country provider mapping
status: TODO
status: DONE
created: 2026-03-25
---
@@ -1,7 +1,7 @@
---
id: 022
title: Add address suggestion endpoint
status: TODO
status: DONE
created: 2026-03-25
---
@@ -21,7 +21,7 @@ created: 2026-03-25
- Не изменять файлы в `spec/`.
## Acceptance criteria
- Существует endpoint `POST /api/v1/delivery/address/suggest`, принимающий `AddressSuggestRequest` и возвращающий `list[AddressSuggestion]`.
- Существует endpoint `POST /api/v1/delivery/suggest-address`, принимающий `AddressSuggestRequest` и возвращающий `list[AddressSuggestion]`.
- Реализованы request/response schemas `AddressSuggestRequest` и `AddressSuggestion`.
- Endpoint реализован в существующем controller `app/controllers/v1/delivery.py`.
- Controller делегирует обработку только в `AggregatorService.suggest_addresses()`.
@@ -33,7 +33,7 @@ created: 2026-03-25
## Definition of Done
- [ ] Добавлены address suggestion request/response schemas.
- [ ] Реализован метод `AggregatorService.suggest_addresses()` для provider routing и orchestration.
- [ ] Реализован endpoint `POST /api/v1/delivery/address/suggest` в существующем controller.
- [ ] Реализован endpoint `POST /api/v1/delivery/address-address` в существующем controller.
- [ ] Добавлены service и controller/API tests для address suggestion flow.
## Tests