MCPcopy Create free account
hub / github.com/Flagsmith/flagsmith / update_traits

Method update_traits

api/edge_api/identities/views.py:174–190  ·  view source on GitHub ↗
(self, request, *args, **kwargs)

Source from the content-addressed store, hash-verified

172 )
173 @action(detail=True, methods=["put"], url_path="update-traits")
174 def update_traits(self, request, *args, **kwargs): # type: ignore[no-untyped-def]
175 environment = self.get_environment_from_request()
176 if not environment.project.organisation.persist_trait_data:
177 raise TraitPersistenceError()
178 edge_identity = self.get_object()
179 try:
180 trait = TraitModel(**request.data)
181 except pydantic.ValidationError as validation_error:
182 raise ValidationError(
183 drf_error_details(validation_error)
184 ) from validation_error
185 _, traits_updated = edge_identity.engine_identity_model.update_traits([trait])
186 if traits_updated:
187 edge_identity.save()
188
189 data = trait.dict()
190 return Response(data, status=status.HTTP_200_OK)
191
192
193class EdgeIdentityFeatureStateViewSet(viewsets.ModelViewSet): # type: ignore[type-arg]

Callers

nothing calls this directly

Calls 5

get_objectMethod · 0.95
TraitModelClass · 0.90
saveMethod · 0.45

Tested by

no test coverage detected