예제 #1
0
        supporter_id = params.get('supporter_id', 0)
        if not (params and protocol_id and system_id and supporter_id) and is_contain_zh(path):
            return response(code=1, message='参数错误,且接口中不能包含中文')
        protocol = Protocol.query.get_or_404(protocol_id)
        system = System.query.get_or_404(system_id)
        supporter = User.query.get_or_404(supporter_id)

        # 判断 path 是否存在
        existed_url = system.urls.filter(URL.path == path).first()
        if existed_url and existed_url.id != url.id:
            return response(code=1, message=f'{path} 已存在,请勿重复添加')

        url.path = path
        url.desc = params.get('desc'),
        url.protocol_id = protocol.id,
        url.system_id = system.id,
        url.supporter_id = supporter.id
        db.session.add(url)
        db.session.commit()
        return response()

    def patch(self, url_id):
        return response()


api_v1.add_url_rule('/systems/<int:sys_id>/urls',
                    view_func=URLsAPI.as_view('urls'),
                    methods=['GET', 'POST'])
api_v1.add_url_rule('/url/<int:url_id>', view_func=URLAPI.as_view('url'),
                    methods=['GET', 'PUT', 'PATCH', 'DELETE'])
예제 #2
0
        """ 获取用户收藏的 URL """
        user = User.query.get_or_404(user_id)
        paginate = URLCollect.query.with_parent(user).order_by(
            URLCollect.timestamp.desc()).paginate(page,
                                                  per_page,
                                                  error_out=False)
        data = {
            'urls': [c.systems.to_json() for c in paginate.items],
            'count': paginate.total,
            'paginate': paginate.page
        }
        return response(data=data)


api_v1.add_url_rule('/users',
                    view_func=UsersAPI.as_view('users'),
                    methods=['GET', 'POST'])
api_v1.add_url_rule('/users/<int:user_id>',
                    view_func=UserAPI.as_view('user'),
                    methods=['GET'])
api_v1.add_url_rule('/users/<int:user_id>/projects',
                    view_func=UserSupportProjects.as_view('support-projects'),
                    methods=['GET'])
api_v1.add_url_rule('/users/<int:user_id>/systems',
                    view_func=UserSupportSystems.as_view('support-systems'),
                    methods=['GET'])
api_v1.add_url_rule('/users/<int:user_id>/urls',
                    view_func=UserSupportURLs.as_view('support-urls'),
                    methods=['GET'])
api_v1.add_url_rule('/users/<int:user_id>/collection-projects',
                    view_func=UserSupportURLs.as_view('collection-projects'),
예제 #3
0
        db.session.commit()
        return response()

    @use_kwargs(NameSchema)
    @use_kwargs({'protocol_id': fields.Int(required=True, default=0)})
    def put(self, m_id, name, protocol_id):
        """ 编辑方法 """
        method = Method.query.get_or_404(m_id)
        protocol = Protocol.query.get_or_404(protocol_id)
        cap_name = name.upper()
        existed_method = protocol.methods.filter(
            Method.name == cap_name).first()
        if existed_method and existed_method.id != method.id:
            return response(code=1, message=f'请求方式 {cap_name} 已存在请勿重复添加')
        method.name = cap_name
        method.protocol_id = protocol_id
        db.session.add(method)
        db.session.commit()
        return response()

    def patch(self, m_id):
        return response()


api_v1.add_url_rule('/protocols/<int:protocol_id>/methods',
                    view_func=MethodsAPI.as_view('methods'),
                    methods=['GET', 'POST'])
api_v1.add_url_rule('/methods/<int:m_id>',
                    view_func=MethodAPI.as_view('method'),
                    methods=['GET', 'PUT', 'PATCH', 'DELETE'])
예제 #4
0
파일: protocols.py 프로젝트: Naisisor/naisi
        protocol = Protocol.query.get_or_404(protocol_id)
        if protocol.methods.count() > 0:
            return response(code=1, message=f'协议 {protocol.name} 中已包含方法,无法删除')
        db.session.delete(protocol)
        db.session.commit()
        return response()

    @use_kwargs(NameSchema)
    def put(self, protocol_id, name):
        """ 编辑协议 """
        protocol = Protocol.query.get_or_404(protocol_id)
        cap_name = name.upper()
        existed_protocol = Protocol.query.filter_by(name=cap_name).first()
        if existed_protocol and existed_protocol.id != protocol.id:
            return response(code=1, message='协议名已存在,请勿重复添加')
        protocol.name = cap_name
        db.session.add(protocol)
        db.session.commit()
        return response()

    def patch(self, protocol_id):
        return response()


api_v1.add_url_rule('/protocols',
                    view_func=ProtocolsAPI.as_view('protocols'),
                    methods=['GET', 'POST'])
api_v1.add_url_rule('/protocols/<int:protocol_id>',
                    view_func=ProtocolAPI.as_view('protocol'),
                    methods=['GET', 'PUT', 'PATCH', 'DELETE'])
예제 #5
0
파일: projects.py 프로젝트: Naisisor/naisi
    @use_kwargs(PASysSchema)
    def put(self, project_id, name, desc, domains, supporter_id):
        """ 编辑项目 """
        project = Project.query.get_or_404(project_id)

        existed_project = Project.query.filter_by(name=name).first()
        if existed_project and existed_project.id != project.id:
            return response(code=1, message='项目已存在,请勿重复添加')

        supporter = User.query.get_or_404(supporter_id)
        project.name = name
        project.desc = desc
        project.domains = domains
        project.supporter_id = supporter.id
        db.session.add(project)
        db.session.commit()
        return response(data={'project': project.to_json()})

    def patch(self, project_id):
        """ 修改项目某一项参数 """
        Project.query.get_or_404(project_id)
        return response()


api_v1.add_url_rule('/projects',
                    view_func=ProjectsAPI.as_view('projects'),
                    methods=['GET', 'POST'])
api_v1.add_url_rule('/projects/<project_id>',
                    view_func=ProjectAPI.as_view('project'),
                    methods=['GET', 'PUT', 'PATCH', 'DELETE'])
예제 #6
0
파일: systems.py 프로젝트: Naisisor/naisi
    @use_kwargs(PASysSchema)
    def put(self, sys_id, name, desc, domains, supporter_id, project_id):
        """ 编辑系统 """
        system = System.query.get_or_404(sys_id)
        supporter = User.query.get_or_404(supporter_id)
        project = Project.query.get_or_404(project_id)

        existed_system = project.systems.filter(System.name == name).first()
        if existed_system and existed_system.id != system.id:
            return response(code=1, message=f'系统 {name} 已存在,请勿重复添加')

        system.name = name
        system.desc = desc,
        system.domains = domains
        system.project_id = project.id
        system.supporter_id = supporter.id
        db.session.add(system)
        db.session.commit()
        return response(data={'system': system.to_json()})

    def patch(self, sys_id):
        return response()


api_v1.add_url_rule('/projects/<int:project_id>/systems',
                    view_func=SystemsAPI.as_view('systems'),
                    methods=['GET', 'POST'])
api_v1.add_url_rule('/systems/<int:sys_id>',
                    view_func=SystemAPI.as_view('system'),
                    methods=['GET', 'PUT', 'PATCH', 'DELETE'])
예제 #7
0
        docs = url.api_docs.all()
        return response(data={'docs': [doc.to_json() for doc in docs]})

    def post(self, url_id):
        """ 新建接口 """
        URL.query.get_or_404(url_id)
        return response()


class DocAPI(MethodView):
    def get(self, doc_id):
        return response()

    def delete(self, doc_id):
        return response()

    def put(self, doc_id):
        return response()

    def patch(self, doc_id):
        return response()


api_v1.add_url_rule('/urls/<int:url_id>/docs',
                    view_func=DocsAPI.as_view('docs'),
                    methods=['GET', 'POST'])

api_v1.add_url_rule('/docs/<int:doc_id>',
                    view_func=DocsAPI.as_view('doc'),
                    methods=['GET', 'POST'])