def post()

in api-server/tesazure/tesapi/api.py [0:0]


    def post(self):
        current_app.logger.debug(f'Task creation received JSON: {request.data}')

        json_input = request.get_json()
        schema = TesTaskSchema()

        try:
            task = schema.load(json_input)
            if len(task.errors) > 0:
                raise ValidationError(task.errors)
        except ValidationError as err:
            current_app.logger.error("Task creation failed: validation error while parsing task. " + json.dumps(err.messages))
            return {'errors': err.messages}, 422
        task = task.data

        # This unusual assignment dance is required because .update() doesn't trigger hybrid property setters
        tags = task.tags
        tags.update(common.detect_tags_for_submitter(task))
        task.tags = tags

        common.mangle_task_for_submitter(task)

        task.backend_id = compute_backend.backend.create_task(task)
        if current_app.config['AAD_VERIFY'] is True:
            task.tenant_id = jwt_claims['tid']
            task.user_id = jwt_claims['sub']
        task.save()

        return {'id': str(task.id)}