Skip to content

Commit 2f45e8c

Browse files
j-trtoro-berlingadomski
authored
feat: use stapi pydantic in stapi fastapi (#22)
- Using models from stapi-pydantic and removing any obsolete models in stapi-fastapi - Subclass Product from stapi-pydantic in stapi-fastapi resolves #11 --------- Co-authored-by: Tobias Rohnstock <[email protected]> Co-authored-by: Pete Gadomski <[email protected]>
1 parent 321dc5d commit 2f45e8c

28 files changed

+71
-484
lines changed

stapi-fastapi/CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
1515

1616
- Add constants for route names to be used in link href generation
1717

18+
## Changed
19+
20+
- stapi-fastapi is now using stapi-pydantic models, deduplicating code
21+
- Product in stapi-fastapi is now subclass of Product from stapi-pydantic
22+
1823
## [v0.6.0] - 2025-02-11
1924

2025
### Added

stapi-fastapi/src/stapi_fastapi/backends/product_backend.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@
66
from fastapi import Request
77
from returns.maybe import Maybe
88
from returns.result import ResultE
9-
10-
from stapi_fastapi.models.opportunity import (
9+
from stapi_pydantic.opportunity import (
1110
Opportunity,
1211
OpportunityCollection,
1312
OpportunityPayload,
1413
OpportunitySearchRecord,
1514
)
16-
from stapi_fastapi.models.order import Order, OrderPayload
15+
from stapi_pydantic.order import Order, OrderPayload
16+
1717
from stapi_fastapi.routers.product_router import ProductRouter
1818

1919
SearchOpportunities = Callable[

stapi-fastapi/src/stapi_fastapi/backends/root_backend.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,15 @@
44
from fastapi import Request
55
from returns.maybe import Maybe
66
from returns.result import ResultE
7-
8-
from stapi_fastapi.models.opportunity import OpportunitySearchRecord
9-
from stapi_fastapi.models.order import (
7+
from stapi_pydantic.opportunity import OpportunitySearchRecord
8+
from stapi_pydantic.order import (
109
Order,
1110
OrderStatus,
1211
)
1312

1413
GetOrders = Callable[
1514
[str | None, int, Request],
16-
Coroutine[Any, Any, ResultE[tuple[list[Order], Maybe[str]]]],
15+
Coroutine[Any, Any, ResultE[tuple[list[Order[OrderStatus]], Maybe[str]]]],
1716
]
1817
"""
1918
Type alias for an async function that returns a list of existing Orders.
@@ -33,7 +32,7 @@
3332
- Returning returns.result.Failure[Exception] will result in a 500.
3433
"""
3534

36-
GetOrder = Callable[[str, Request], Coroutine[Any, Any, ResultE[Maybe[Order]]]]
35+
GetOrder = Callable[[str, Request], Coroutine[Any, Any, ResultE[Maybe[Order[OrderStatus]]]]]
3736
"""
3837
Type alias for an async function that gets details for the order with `order_id`.
3938

stapi-fastapi/src/stapi_fastapi/models/__init__.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
from .opportunity import OpportunityProperties
2-
from .product import Product, Provider, ProviderRole
3-
from .shared import Link
1+
from stapi_pydantic.opportunity import OpportunityProperties
2+
from stapi_pydantic.product import Provider, ProviderRole
3+
from stapi_pydantic.shared import Link
4+
5+
from .product import Product
46

57
__all__ = [
68
"Link",

stapi-fastapi/src/stapi_fastapi/models/conformance.py

Lines changed: 0 additions & 9 deletions
This file was deleted.

stapi-fastapi/src/stapi_fastapi/models/constraints.py

Lines changed: 0 additions & 5 deletions
This file was deleted.

stapi-fastapi/src/stapi_fastapi/models/opportunity.py

Lines changed: 0 additions & 83 deletions
This file was deleted.

stapi-fastapi/src/stapi_fastapi/models/order.py

Lines changed: 0 additions & 131 deletions
This file was deleted.

0 commit comments

Comments
 (0)