Skip to content

Commit 633f500

Browse files
committed
[DOP-25451] Use PUT /v1/groups/:id instead of PATCH
1 parent 1c45ca0 commit 633f500

11 files changed

Lines changed: 120 additions & 121 deletions

File tree

docs/changelog/0.2.2.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
Breaking
55
--------
66

7+
- Use ``PUT /v1/qroups/:id`` instead of ``PATCH /v1/qroups/:id``.
78
- Use ``PUT /v1/queues/:id`` instead of ``PATCH /v1/queues/:id``.
89
- Minimal queue name is 3 symbols instead of 1.
910

syncmaster/db/repositories/group.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
from syncmaster.exceptions.group import (
1616
AlreadyIsGroupMemberError,
1717
AlreadyIsNotGroupMemberError,
18-
GroupAdminNotFoundError,
1918
GroupAlreadyExistsError,
2019
GroupNotFoundError,
2120
)
@@ -364,7 +363,7 @@ def _raise_error(self, err: DBAPIError) -> NoReturn: # noqa: WPS238
364363
constraint = err.__cause__.__cause__.constraint_name
365364

366365
if constraint == "fk__group__owner_id__user":
367-
raise GroupAdminNotFoundError from err
366+
raise UserNotFoundError from err
368367

369368
if constraint == "uq__group__name":
370369
raise GroupAlreadyExistsError from err

syncmaster/exceptions/group.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@ class GroupNameAlreadyExistsError(SyncmasterError):
77
pass
88

99

10-
class GroupAdminNotFoundError(SyncmasterError):
11-
pass
12-
13-
1410
class GroupAlreadyExistsError(SyncmasterError):
1511
pass
1612

syncmaster/schemas/v1/__init__.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@
5555
FullUserSchema,
5656
ReadGroupMember,
5757
ReadUserSchema,
58-
UpdateUserSchema,
5958
UserPageSchema,
6059
UserPageSchemaAsGroupMember,
6160
)
@@ -100,7 +99,6 @@
10099
"JSONLine",
101100
"Parquet",
102101
"ReadUserSchema",
103-
"UpdateUserSchema",
104102
"FullUserSchema",
105103
"ReadGroupMember",
106104
"UserPageSchema",

syncmaster/schemas/v1/users.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
11
# SPDX-FileCopyrightText: 2023-2024 MTS PJSC
22
# SPDX-License-Identifier: Apache-2.0
3-
from pydantic import BaseModel, ConfigDict, constr
3+
from pydantic import BaseModel, ConfigDict
44

55
from syncmaster.db.models import GroupMemberRole
66
from syncmaster.db.utils import Pagination
77
from syncmaster.schemas.v1.page import MetaPageSchema, PageSchema
88

99

10-
class UpdateUserSchema(BaseModel):
11-
username: constr(pattern=r"^[_a-z0-9]+$") # noqa: F722
12-
13-
1410
class ReadGroupMember(BaseModel):
1511
id: int
1612
username: str

syncmaster/server/api/v1/groups.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ async def read_group(
9292
)
9393

9494

95-
@router.patch("/groups/{group_id}")
95+
@router.put("/groups/{group_id}")
9696
async def update_group( # noqa: WPS217
9797
group_id: int,
9898
group_data: UpdateGroupSchema,

syncmaster/server/handler.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
AlreadyIsGroupMemberError,
2626
AlreadyIsGroupOwnerError,
2727
AlreadyIsNotGroupMemberError,
28-
GroupAdminNotFoundError,
2928
GroupAlreadyExistsError,
3029
GroupNotFoundError,
3130
)
@@ -165,13 +164,6 @@ async def syncmsater_exception_handler(request: Request, exc: SyncmasterError):
165164
content=content,
166165
)
167166

168-
if isinstance(exc, GroupAdminNotFoundError):
169-
content.code = "not_found"
170-
content.message = "Admin not found"
171-
return exception_json_response(
172-
status=status.HTTP_404_NOT_FOUND,
173-
content=content,
174-
)
175167
if isinstance(exc, GroupAlreadyExistsError):
176168
content.code = "conflict"
177169
content.message = "Group name already taken"

tests/test_unit/test_groups/test_create_group.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,18 @@ async def test_simple_user_can_create_group(
3030
assert result.status_code == 200, result.json()
3131

3232
group = (await session.scalars(select(Group).where(Group.name == group_name))).one()
33-
assert result.json() == {
34-
"id": group.id,
35-
"name": group_name,
36-
"description": "description of new test group",
37-
"owner_id": simple_user.user.id,
38-
}
33+
assert (
34+
result.json()
35+
== {
36+
"id": group.id,
37+
"owner_id": simple_user.user.id,
38+
}
39+
| group_data
40+
)
41+
42+
assert group.name == group_data["name"]
43+
assert group.description == group_data["description"]
44+
assert group.owner_id == simple_user.user.id
3945

4046

4147
async def test_simple_user_cannot_create_group_twice(
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)