MCPcopy Index your code
hub / github.com/Flagsmith/flagsmith / create

Method create

api/experimentation/views.py:274–300  ·  view source on GitHub ↗
(self, request: Request, *args: object, **kwargs: object)

Source from the content-addressed store, hash-verified

272 return response
273
274 def create(self, request: Request, *args: object, **kwargs: object) -> Response:
275 serializer = self.get_serializer(data=request.data)
276 serializer.is_valid(raise_exception=True)
277
278 feature = serializer.validated_data["feature"]
279 environment = self._get_environment()
280 if (
281 Experiment.objects.filter(
282 feature=feature,
283 environment=environment,
284 )
285 .exclude(status=ExperimentStatus.COMPLETED)
286 .exists()
287 ):
288 return Response(
289 {"detail": "An active experiment already exists for this feature."},
290 status=status.HTTP_409_CONFLICT,
291 )
292
293 try:
294 self.perform_create(serializer)
295 except IntegrityError:
296 return Response(
297 {"detail": "An active experiment already exists for this feature."},
298 status=status.HTTP_409_CONFLICT,
299 )
300 return Response(serializer.data, status=status.HTTP_201_CREATED)
301
302 def perform_create(self, serializer: BaseSerializer[Experiment]) -> None:
303 experiment: Experiment = serializer.save(environment=self._get_environment())

Callers 5

seed_dataFunction · 0.45
create_metric_audit_logFunction · 0.45
_create_rollout_segmentFunction · 0.45

Calls 4

perform_createMethod · 0.95
is_validMethod · 0.80
existsMethod · 0.80
_get_environmentMethod · 0.45

Tested by

no test coverage detected