Exemplo n.º 1
0
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)
Exemplo n.º 2
0
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)
Exemplo n.º 3
0
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}
Exemplo n.º 4
0
    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.")
Exemplo n.º 5
0
 def __init__(self, *args, **kwargs):
     super().__init__(*args, **kwargs)
     self.project_facade = ProjectFacade()
Exemplo n.º 6
0
 def get(self):
     """
     :return a list of logged user's projects
     """
     return ProjectFacade.retrieve_logged_user_projects(
         get_current_user().id)