Skip to content

Commit 591b2db

Browse files
committed
change patch to put in feature flag endpoint
1 parent bd49089 commit 591b2db

4 files changed

Lines changed: 19 additions & 19 deletions

File tree

docs/OperationsAPI.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -499,13 +499,13 @@ paths:
499499
"404":
500500
description: User not found.
501501
/v1/operations/users/{user_id}/feature-flags:
502-
patch:
502+
put:
503503
summary: Replace a user's feature flags
504504
description: |
505505
Replaces the user's complete set of feature flags in a single call.
506506
Flags in the list are assigned; any previously assigned flags not in the list are removed.
507507
All provided flag IDs must exist.
508-
operationId: patchUserFeatureFlags
508+
operationId: putUserFeatureFlags
509509
tags:
510510
- "users"
511511
security:
@@ -521,7 +521,7 @@ paths:
521521
content:
522522
application/json:
523523
schema:
524-
$ref: "#/components/schemas/PatchUserFeatureFlagsRequest"
524+
$ref: "#/components/schemas/PutUserFeatureFlagsRequest"
525525
responses:
526526
"200":
527527
description: Updated user profile with the new feature flag set.
@@ -2351,7 +2351,7 @@ components:
23512351
items:
23522352
$ref: "#/components/schemas/UserFeatureFlagState"
23532353
default: []
2354-
PatchUserFeatureFlagsRequest:
2354+
PutUserFeatureFlagsRequest:
23552355
x-operation: true
23562356
type: object
23572357
required:

functions-python/operations_api/.openapi-generator/FILES

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,10 @@ src/feeds_gen/models/operation_feed.py
4646
src/feeds_gen/models/operation_gtfs_feed.py
4747
src/feeds_gen/models/operation_gtfs_rt_feed.py
4848
src/feeds_gen/models/operation_user_profile.py
49-
src/feeds_gen/models/patch_user_feature_flags_request.py
5049
src/feeds_gen/models/propagate_license_affected_feed.py
5150
src/feeds_gen/models/propagate_license_request.py
5251
src/feeds_gen/models/propagate_license_response.py
52+
src/feeds_gen/models/put_user_feature_flags_request.py
5353
src/feeds_gen/models/redirect.py
5454
src/feeds_gen/models/search_feed_item_result.py
5555
src/feeds_gen/models/source_info.py

functions-python/operations_api/src/feeds_operations/impl/user_feature_flags_impl.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@
2929
)
3030
from feeds_gen.models.operation_feature_flag import OperationFeatureFlag
3131
from feeds_gen.models.operation_user_profile import OperationUserProfile
32-
from feeds_gen.models.patch_user_feature_flags_request import (
33-
PatchUserFeatureFlagsRequest,
32+
from feeds_gen.models.put_user_feature_flags_request import (
33+
PutUserFeatureFlagsRequest,
3434
)
3535
from feeds_gen.models.update_feature_flag_request import UpdateFeatureFlagRequest
3636
from feeds_operations.impl.models.operation_feature_flag_impl import (
@@ -196,10 +196,10 @@ def update_feature_flag(
196196
return OperationFeatureFlagImpl.from_orm(flag)
197197

198198
@with_users_db_session
199-
def patch_user_feature_flags(
199+
def put_user_feature_flags(
200200
self,
201201
user_id: str,
202-
patch_user_feature_flags_request: PatchUserFeatureFlagsRequest,
202+
put_user_feature_flags_request: PutUserFeatureFlagsRequest,
203203
db_session=None,
204204
) -> OperationUserProfile:
205205
user = (
@@ -211,7 +211,7 @@ def patch_user_feature_flags(
211211
if not user:
212212
raise HTTPException(status_code=404, detail="User not found.")
213213

214-
assignments = patch_user_feature_flags_request.assignments or []
214+
assignments = put_user_feature_flags_request.assignments or []
215215
flag_ids = [a.feature_flag_id for a in assignments]
216216

217217
# Validate all provided flag IDs exist before making any changes

functions-python/operations_api/tests/feeds_operations/impl/test_user_feature_flags.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@
2323
from feeds_operations.impl.user_feature_flags_impl import UserFeatureFlagsApiImpl
2424
from feeds_gen.models.create_feature_flag_request import CreateFeatureFlagRequest
2525
from feeds_gen.models.feature_flag_assignment import FeatureFlagAssignment
26-
from feeds_gen.models.patch_user_feature_flags_request import (
27-
PatchUserFeatureFlagsRequest,
26+
from feeds_gen.models.put_user_feature_flags_request import (
27+
PutUserFeatureFlagsRequest,
2828
)
2929
from feeds_gen.models.update_feature_flag_request import UpdateFeatureFlagRequest
3030
from shared.users_database_gen.sqlacodegen_models import (
@@ -412,7 +412,7 @@ def test_raises_404_when_flag_not_found(self):
412412
self.session.delete.assert_not_called()
413413

414414

415-
class TestPatchUserFeatureFlags(unittest.TestCase):
415+
class TestPutUserFeatureFlags(unittest.TestCase):
416416
def setUp(self):
417417
self.api = UserFeatureFlagsApiImpl()
418418
self.session = MagicMock()
@@ -431,9 +431,9 @@ def _setup_flags_query(self, flag_ids):
431431
def test_raises_404_when_user_not_found(self):
432432
_mock_query(self.session, None)
433433

434-
req = PatchUserFeatureFlagsRequest(assignments=[])
434+
req = PutUserFeatureFlagsRequest(assignments=[])
435435
with self.assertRaises(HTTPException) as ctx:
436-
self.api.patch_user_feature_flags("missing", req, db_session=self.session)
436+
self.api.put_user_feature_flags("missing", req, db_session=self.session)
437437

438438
self.assertEqual(ctx.exception.status_code, 404)
439439

@@ -451,11 +451,11 @@ def query_side_effect(model):
451451

452452
self.session.query.side_effect = query_side_effect
453453

454-
req = PatchUserFeatureFlagsRequest(
454+
req = PutUserFeatureFlagsRequest(
455455
assignments=[FeatureFlagAssignment(feature_flag_id="nonexistent")]
456456
)
457457
with self.assertRaises(HTTPException) as ctx:
458-
self.api.patch_user_feature_flags("uid-1", req, db_session=self.session)
458+
self.api.put_user_feature_flags("uid-1", req, db_session=self.session)
459459

460460
self.assertEqual(ctx.exception.status_code, 404)
461461
self.assertIn("nonexistent", ctx.exception.detail)
@@ -472,8 +472,8 @@ def test_clears_flags_when_empty_list_provided(self):
472472
mock_q.all.return_value = [] # all-flags query returns no flags
473473
self.session.query.return_value = mock_q
474474

475-
req = PatchUserFeatureFlagsRequest(assignments=[])
476-
self.api.patch_user_feature_flags("uid-1", req, db_session=self.session)
475+
req = PutUserFeatureFlagsRequest(assignments=[])
476+
self.api.put_user_feature_flags("uid-1", req, db_session=self.session)
477477

478478
# delete() should be called on the query to clear all assignments
479479
mock_q.delete.assert_called_once()

0 commit comments

Comments
 (0)