class GetDataInProjectResource(RestResource): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.project_facade = ProjectFacade() @check_permission(ProjectAccessPermission, 'project_gid') def get(self, project_gid): """ :return a list of DataType instances (subclasses) associated with the current project """ return self.project_facade.get_datatypes_in_project(project_gid)
class ProjectMembersResource(RestResource): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.project_facade = ProjectFacade() def put(self, project_gid): """ Add members to the given project :param project_gid: project gid :param """ input_data = flask.request.json new_members_gid = input_data[ FormKeyInput.NEW_MEMBERS_GID. value] if FormKeyInput.NEW_MEMBERS_GID.value in input_data else [] if len(new_members_gid) == 0: raise InvalidInputException("Empty users list.") self.project_facade.add_members_to_project(get_current_user().id, project_gid, new_members_gid)
class GetOperationsInProjectResource(RestResource): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.project_facade = ProjectFacade() @check_permission(ProjectAccessPermission, 'project_gid') def get(self, project_gid): """ :return a list of project's Operation entities """ page_number = self.extract_page_number() operation_dto_list, pages = self.project_facade.get_project_operations( project_gid, page_number) return {"operations": operation_dto_list, "pages": pages}
def post(self): """ Create a new project linked to the current user """ input_data = flask.request.json try: project_name = input_data[FormKeyInput.CREATE_PROJECT_NAME.value] project_description = input_data[FormKeyInput.CREATE_PROJECT_DESCRIPTION.value] \ if FormKeyInput.CREATE_PROJECT_DESCRIPTION.value in input_data else "" try: project_gid = ProjectFacade().create_project(get_current_user(), project_name, project_description) return project_gid, HTTP_STATUS_CREATED except formencode.Invalid as exception: raise InvalidInputException(exception.msg) except KeyError: raise InvalidInputException("Invalid create project input.")
def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.project_facade = ProjectFacade()
def get(self): """ :return a list of logged user's projects """ return ProjectFacade.retrieve_logged_user_projects( get_current_user().id)