DEPRECATED: please use `/features/featurestates/` instead. Override create method to add environment and identity (if present) from URL parameters.
(self, request, *args, **kwargs)
| 705 | return environment |
| 706 | |
| 707 | def create(self, request, *args, **kwargs): # type: ignore[no-untyped-def] |
| 708 | """ |
| 709 | DEPRECATED: please use `/features/featurestates/` instead. |
| 710 | Override create method to add environment and identity (if present) from URL parameters. |
| 711 | """ |
| 712 | data = request.data |
| 713 | if "feature" not in data: |
| 714 | error = {"detail": "Feature not provided"} |
| 715 | return Response(error, status=status.HTTP_400_BAD_REQUEST) |
| 716 | |
| 717 | environment = self.get_environment_from_request() # type: ignore[no-untyped-call] |
| 718 | data["environment"] = environment.id |
| 719 | |
| 720 | identity_pk = self.kwargs.get("identity_pk") |
| 721 | if identity_pk: |
| 722 | data["identity"] = identity_pk |
| 723 | |
| 724 | require_direct_state_write( |
| 725 | environment=environment, |
| 726 | is_identity_override=bool(identity_pk), |
| 727 | ) |
| 728 | |
| 729 | serializer = self.get_serializer(data=data) |
| 730 | |
| 731 | if serializer.is_valid(raise_exception=True): |
| 732 | feature_state = serializer.save() |
| 733 | headers = self.get_success_headers(serializer.data) |
| 734 | |
| 735 | if "feature_state_value" in data: |
| 736 | self.update_feature_state_value( # type: ignore[no-untyped-call] |
| 737 | data["feature_state_value"], feature_state |
| 738 | ) |
| 739 | |
| 740 | return Response( |
| 741 | FeatureStateSerializerBasic(feature_state).data, |
| 742 | status=status.HTTP_201_CREATED, |
| 743 | headers=headers, |
| 744 | ) |
| 745 | |
| 746 | def update(self, request, *args, **kwargs): # type: ignore[no-untyped-def] |
| 747 | """ |
no test coverage detected