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
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
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
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" )
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