def post(self, request, *args, **kwargs): task_id = int(self.kwargs['task_id']) config_stages = request.data.get('config_stages', None) if config_stages is not None: for stage in config_stages: temp_serializer = self.get_serializer(data=stage) temp_serializer.is_valid() temp_serializer._saving_instances = False instance = CITaskConfigService.task_stage(stage.get('id')) instance = temp_serializer.recursive_save( temp_serializer.validated_data, instance) instance.save() for step in stage.get('steps', []): temp_serializer = ci_step_serializer.CITaskStepSerializer( data=step) temp_serializer.is_valid() temp_serializer._saving_instances = False instance = CITaskConfigService.task_step(step.get('id')) instance = temp_serializer.recursive_save( temp_serializer.validated_data, instance) instance.save() parameter_groups = CITaskParameterService.task_parameter_list( task_id) for group in parameter_groups: CITaskParameterService.save_step_settings(str(group.id)) return Response(config_stages, status=status.HTTP_201_CREATED)
def delete(self, request, *args, **kwargs): stage_id = self.kwargs['stage_id'] CITaskConfigService.delete_steps(stage_id) stage = CITaskConfigService.task_stage(stage_id) parameter_groups = CITaskParameterService.task_parameter_list( stage.task_id) for group in parameter_groups: CITaskParameterService.save_step_settings(str(group.id)) return self.destroy(request, *args, **kwargs)
def post(self, request, *args, **kwargs): serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) self.perform_create(serializer) CITaskParameterService.save_step_settings(serializer.instance.id) headers = self.get_success_headers(serializer.data) return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
def post(self, request, *args, **kwargs): stage_id = self.kwargs.get('stage_id', None) stage = CITaskConfigService.task_stage(stage_id) serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) self.perform_create(serializer) headers = self.get_success_headers(serializer.data) parameter_groups = CITaskParameterService.task_parameter_list( stage.task_id) for group in parameter_groups: CITaskParameterService.save_step_settings(str(group.id)) return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)