Пример #1
0
    def post(self, task_id):
        (
            name,
            mode,
            software_id,
            comment,
            revision,
            separator,
        ) = self.get_arguments()

        try:
            task = tasks_service.get_task(task_id)
            user_service.check_project_access(task["project_id"])

            software = files_service.get_software(software_id)
            is_revision_set_by_user = revision != 0
            if not is_revision_set_by_user:
                revision = files_service.get_next_working_file_revision(
                    task_id, name
                )
            file_path = file_tree_service.get_working_folder_path(
                task, mode=mode, software=software, name=name, sep=separator,
                revision=revision
            )
            file_name = file_tree_service.get_working_file_name(
                task, mode=mode, revision=revision, software=software, name=name
            )
        except MalformedFileTreeException as exception:
            return (
                {"message": str(exception), "received_data": request.json},
                400,
            )

        return {"path": file_path, "name": file_name}, 200
Пример #2
0
    def post(self, task_id):
        (name, mode, description, comment, person_id, software_id, revision,
         sep) = self.get_arguments()

        try:
            task = tasks_service.get_task(task_id)
            user_service.check_project_access(task["project_id"])
            software = files_service.get_software(software_id)
            tasks_service.assign_task(task_id,
                                      persons_service.get_current_user()["id"])

            if revision == 0:
                revision = files_service.get_next_working_revision(
                    task_id, name)

            path = self.build_path(task, name, revision, software, sep, mode)

            working_file = files_service.create_new_working_revision(
                task_id,
                person_id,
                software_id,
                name=name,
                path=path,
                comment=comment,
                revision=revision)
        except EntryAlreadyExistsException:
            return {"error": "The given working file already exists."}, 400

        return working_file, 201
Пример #3
0
    def put(self, task_id):
        (person_id, comment, working_file_id) = self.get_arguments()

        try:
            task = tasks_service.get_task(task_id)
            if not permissions.has_manager_permissions():
                user_service.check_assigned(task_id)

            person = persons_service.get_person(person_id)

            preview_path = ""
            if working_file_id is not None:
                working_file = files_service.get_working_file(working_file_id)
                software = files_service.get_software(
                    working_file["software_id"])
                revision = working_file["revision"]

                preview_path = self.get_preview_path(task,
                                                     working_file["name"],
                                                     revision, software)

            task = tasks_service.task_to_review(task["id"], person, comment,
                                                preview_path)
        except PersonNotFoundException:
            return {"error": "Cannot find given person."}, 400

        return task
Пример #4
0
 def test_get_software(self):
     software = files_service.get_software(self.software.id)
     self.assertEqual(software["id"], str(self.software.id))
     self.assertRaises(
         SoftwareNotFoundException,
         files_service.get_software,
         "unknown"
     )
Пример #5
0
    def post(self, task_id):
        (
            name,
            mode,
            software_id,
            comment,
            revision,
            separator
        ) = self.get_arguments()

        try:
            task = tasks_service.get_task(task_id)
            if not permissions.has_manager_permissions():
                user_service.check_has_task_related(task["project_id"])

            software = files_service.get_software(software_id)
            is_revision_set_by_user = revision != 0
            if not is_revision_set_by_user:
                revision = files_service.get_next_working_file_revision(
                    task_id,
                    name
                )
            file_path = file_tree_service.get_working_folder_path(
                task,
                mode=mode,
                software=software,
                name=name,
                sep=separator
            )
            file_name = file_tree_service.get_working_file_name(
                task,
                mode=mode,
                revision=revision,
                software=software,
                name=name
            )
        except MalformedFileTreeException:
            return {
                "error":
                    "Tree is not properly written, check modes and variables",
                "received_data": request.json,
            }, 400

        return {"path": file_path, "name": file_name}, 200