Skip to content

Commit 3f4fe5c

Browse files
committed
publishing listing creates bidding
1 parent f98ad77 commit 3f4fe5c

36 files changed

+327
-118
lines changed

.idea/.gitignore

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

.idea/inspectionProfiles/Project_Default.xml

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

.idea/inspectionProfiles/profiles_settings.xml

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

.idea/modules.xml

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

.idea/vcs.xml

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

src/api/main.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,25 @@
44
from fastapi.responses import JSONResponse
55

66
import api.routers.catalog
7-
from api.models import CurrentUser
8-
from api.routers import catalog, iam
7+
from api.models.catalog import CurrentUser
8+
from api.routers import bidding, catalog, iam
99
from config.api_config import ApiConfig
1010
from config.container import Container
1111
from seedwork.domain.exceptions import DomainException, EntityNotFoundException
1212
from seedwork.infrastructure.logging import LoggerFactory, logger
1313
from seedwork.infrastructure.request_context import request_context
1414

1515
# configure logger prior to first usage
16-
LoggerFactory.configure(logger_name="cli")
16+
LoggerFactory.configure(logger_name="api")
1717

1818
# dependency injection container
1919
container = Container()
2020
container.config.from_pydantic(ApiConfig())
21-
container.wire(modules=[api.routers.catalog, api.routers.iam])
21+
container.wire(modules=[api.routers.catalog, api.routers.bidding, api.routers.iam])
2222

2323
app = FastAPI(debug=container.config.DEBUG)
2424
app.include_router(catalog.router)
25+
app.include_router(bidding.router)
2526
app.include_router(iam.router)
2627
app.container = container
2728

src/api/models/__init__.py

Whitespace-only changes.

src/api/models/bidding.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
from datetime import datetime
2+
from uuid import UUID
3+
4+
from pydantic import BaseModel
5+
6+
7+
class BidReadModel(BaseModel):
8+
amount: float
9+
currency: str
10+
bidder_id: UUID
11+
bidder_username: str
12+
13+
14+
class BiddingReadModel(BaseModel):
15+
listing_id: UUID
16+
auction_status: str = "active" # active, ended
17+
auction_end_date: datetime
18+
bids: list[BidReadModel]

src/api/models.py renamed to src/api/models/catalog.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ class ListingWriteModel(BaseModel):
1919
ask_price_currency: str = "USD"
2020

2121

22+
class ListingPublishModel(BaseModel):
23+
id: UUID
24+
25+
2226
class ListingReadModel(BaseModel):
2327
id: UUID
2428
title: str = ""

src/api/models/common.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from uuid import UUID, uuid4
2+
3+
from pydantic import BaseModel
4+
5+
6+
class CurrentUser(BaseModel):
7+
id: UUID
8+
username: str
9+
10+
@classmethod
11+
def fake_user(cls):
12+
return CurrentUser(id=uuid4(), username="fake_user")

0 commit comments

Comments
 (0)