(self, request, *args, **kwargs)
| 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 | |
| 193 | class EdgeIdentityFeatureStateViewSet(viewsets.ModelViewSet): # type: ignore[type-arg] |
nothing calls this directly
no test coverage detected