Skip to content

Commit 8d7a18a

Browse files
fix: models improvement
1 parent 2e1c229 commit 8d7a18a

File tree

5 files changed

+22
-23
lines changed

5 files changed

+22
-23
lines changed

app/modules/greencode/cruds_greencode.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ async def get_item_by_qr_code_content(
5353

5454
async def get_item_by_id(
5555
db: AsyncSession,
56-
item_id: Sequence[str],
56+
item_id: uuid.UUID,
5757
) -> models_greencode.GreenCodeItem | None:
5858
"""Return an item by item_id."""
5959
result = await db.execute(
@@ -78,7 +78,7 @@ async def create_item(
7878
return item
7979

8080

81-
async def delete_item(item_id: str, db: AsyncSession):
81+
async def delete_item(item_id: uuid.UUID, db: AsyncSession):
8282
"""Delete an item."""
8383
await db.execute(
8484
delete(models_greencode.GreenCodeItem).where(
@@ -93,7 +93,7 @@ async def delete_item(item_id: str, db: AsyncSession):
9393

9494

9595
async def update_item(
96-
item_id: str,
96+
item_id: uuid.UUID,
9797
item_update: schemas_greencode.ItemUpdate,
9898
db: AsyncSession,
9999
):
@@ -144,13 +144,12 @@ async def get_greencode_users(
144144

145145

146146
async def create_membership(
147-
item_id: str,
147+
item_id: uuid.UUID,
148148
user_id: str,
149149
db: AsyncSession,
150150
) -> models_greencode.GreenCodeMembership:
151151
"""Create a membership. Make user_id discover item_id."""
152152
membership = models_greencode.GreenCodeMembership(
153-
id=str(uuid.uuid4()),
154153
item_id=item_id,
155154
user_id=user_id,
156155
)
@@ -163,7 +162,7 @@ async def create_membership(
163162
return membership
164163

165164

166-
async def delete_membership(item_id: str, user_id, db: AsyncSession):
165+
async def delete_membership(item_id: uuid.UUID, user_id, db: AsyncSession):
167166
"""Delete a membership. Make user_id undiscover item_id."""
168167
await db.execute(
169168
delete(models_greencode.GreenCodeMembership).where(

app/modules/greencode/endpoints_greencode.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ async def create_item(
108108
"""
109109

110110
db_item = models_greencode.GreenCodeItem(
111-
id=str(uuid.uuid4()),
111+
id=uuid.uuid4(),
112112
**item.model_dump(),
113113
)
114114

@@ -123,7 +123,7 @@ async def create_item(
123123
status_code=204,
124124
)
125125
async def delete_item(
126-
item_id: str,
126+
item_id: uuid.UUID,
127127
db: AsyncSession = Depends(get_db),
128128
user: models_core.CoreUser = Depends(is_user_a_member_of(GroupType.greencode)),
129129
):
@@ -144,7 +144,7 @@ async def delete_item(
144144
status_code=204,
145145
)
146146
async def update_item(
147-
item_id: str,
147+
item_id: uuid.UUID,
148148
item_update: schemas_greencode.ItemUpdate,
149149
db: AsyncSession = Depends(get_db),
150150
user: models_core.CoreUser = Depends(is_user_a_member_of(GroupType.greencode)),
@@ -179,7 +179,7 @@ async def update_item(
179179
status_code=204,
180180
)
181181
async def create_current_user_membership(
182-
item_id: str,
182+
item_id: uuid.UUID,
183183
db: AsyncSession = Depends(get_db),
184184
user: models_core.CoreUser = Depends(is_user_an_ecl_member),
185185
):
@@ -203,7 +203,7 @@ async def create_current_user_membership(
203203
status_code=204,
204204
)
205205
async def delete_current_user_membership(
206-
item_id: str,
206+
item_id: uuid.UUID,
207207
db: AsyncSession = Depends(get_db),
208208
user: models_core.CoreUser = Depends(is_user_an_ecl_member),
209209
):
@@ -223,7 +223,7 @@ async def delete_current_user_membership(
223223
status_code=204,
224224
)
225225
async def create_membership(
226-
item_id: str,
226+
item_id: uuid.UUID,
227227
user_id: str,
228228
db: AsyncSession = Depends(get_db),
229229
user: models_core.CoreUser = Depends(is_user_a_member_of(GroupType.greencode)),
@@ -249,7 +249,7 @@ async def create_membership(
249249
status_code=204,
250250
)
251251
async def delete_membership(
252-
item_id: str,
252+
item_id: uuid.UUID,
253253
user_id: str,
254254
db: AsyncSession = Depends(get_db),
255255
user: models_core.CoreUser = Depends(is_user_a_member_of(GroupType.greencode)),

app/modules/greencode/models_greencode.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22
from sqlalchemy.orm import Mapped, mapped_column, relationship
33

44
from app.core.models_core import CoreUser
5-
from app.types.sqlalchemy import Base
5+
from app.types.sqlalchemy import Base, PrimaryKey
66

77

88
class GreenCodeItem(Base):
99
__tablename__ = "greencode_items"
1010

11-
id: Mapped[str] = mapped_column(String, primary_key=True, index=True)
11+
id: Mapped[PrimaryKey]
1212
qr_code_content: Mapped[str] = mapped_column(String, nullable=False, unique=True)
1313
title: Mapped[str] = mapped_column(String, nullable=False)
1414
content: Mapped[str] = mapped_column(String, nullable=False)
@@ -21,7 +21,6 @@ class GreenCodeItem(Base):
2121
class GreenCodeMembership(Base):
2222
__tablename__ = "greencode_memberships"
2323

24-
id: Mapped[str] = mapped_column(String, primary_key=True, index=True)
2524
item_id: Mapped[str] = mapped_column(
2625
ForeignKey("greencode_items.id"),
2726
primary_key=True,

app/modules/greencode/schemas_greencode.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import uuid
2+
13
from pydantic import BaseModel, ConfigDict
24

35
from app.core.schemas_core import CoreUserSimple
@@ -16,7 +18,7 @@ class ItemUpdate(BaseModel):
1618

1719

1820
class ItemComplete(ItemBase):
19-
id: str
21+
id: uuid.UUID
2022
model_config = ConfigDict(from_attributes=True)
2123

2224

tests/test_greencode.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ async def init_objects():
4646

4747
global item
4848
item = models_greencode.GreenCodeItem(
49-
id=str(uuid.uuid4()),
49+
id=uuid.uuid4(),
5050
qr_code_content="QRCodeContent",
5151
title="Item",
5252
content="Example of item",
@@ -55,15 +55,14 @@ async def init_objects():
5555

5656
global item_to_delete
5757
item_to_delete = models_greencode.GreenCodeItem(
58-
id=str(uuid.uuid4()),
58+
id=uuid.uuid4(),
5959
qr_code_content="Another QRCodeContent",
6060
title="Item to delete",
6161
content="I will be deleted soon!",
6262
)
6363
await add_object_to_db(item_to_delete)
6464

6565
membership = models_greencode.GreenCodeMembership(
66-
id=str(uuid.uuid4()),
6766
user_id=user_with_membership.id,
6867
item_id=item.id,
6968
)
@@ -85,7 +84,7 @@ def test_get_items_for_user_greencode():
8584
headers={"Authorization": f"Bearer {token_greencode}"},
8685
)
8786
assert response.status_code == 200
88-
assert response.json()[0]["id"] == item.id
87+
assert response.json()[0]["id"] == str(item.id)
8988

9089

9190
def test_get_user_items():
@@ -94,7 +93,7 @@ def test_get_user_items():
9493
headers={"Authorization": f"Bearer {token_with_membership}"},
9594
)
9695
assert response.status_code == 200
97-
assert response.json()[0]["id"] == item.id
96+
assert response.json()[0]["id"] == str(item.id)
9897

9998

10099
def test_get_item_by_qr_code():
@@ -103,7 +102,7 @@ def test_get_item_by_qr_code():
103102
headers={"Authorization": f"Bearer {token_simple}"},
104103
)
105104
assert response.status_code == 200
106-
assert response.json()["id"] == item.id
105+
assert response.json()["id"] == str(item.id)
107106

108107

109108
def test_create_item():

0 commit comments

Comments
 (0)