Beispiel #1
0
def api_delete_interface(id, request):
    #删除一个API
    logging.info("删除API的APIID为:%s" % id)
    #检查权限
    check_admin(request)
    #查询评论id是否有对应的评论
    b = yield from Interface.find(id)
    #没有抛出异常
    if b is None:
        raise APIResourceNotFoundError('Comment')
    yield from b.remove()
    return dict(id=id)
Beispiel #2
0
def get_interface(id):
    #根据APIid查询该API信息
    interface = yield from Interface.find(id)
    #根据APIid查询该API评论
    comments = yield from Comment.findAll('interface_id=?', [id], orderBy='created_at desc')
    #markdown2是个扩展模块,把API正文和评论套入markdown2中
    for c in comments:
        c.html_content = text2html(c.content)
    interface.html_content = markdown2.markdown(interface.content)
    #返回页面
    return {
        '__template__': 'interface.html',
        'interface': interface,
        'comments': comments
    }
Beispiel #3
0
def api_create_comment(id, request, *, content):
    #对某个API发表评论
    user = request.__user__
    #评论必须为登录状态下
    if user is None:
        raise APIPermissionError('content')
    #评论不能为空
    if not content or not content.strip():
        raise APIValueError('content')
    #查询APIid是否有对应API
    interface = yield from Interface.find(id)
    if interface is None:
        raise APIResourceNotFoundError('Interface')
    #构建一条评论数据
    comment = Comment(interface_id=interface.id, user_id=user.id, user_name=user.name, user_image=user.image, content=content.strip())
    #保存到评论里
    yield from comment.save()
    return comment
Beispiel #4
0
def api_modify_interface(request, *, id, name, summary, content):
    #修改一个API
    logging.info("修改的APIID为:%s", id)
    #name, summary, content不能为空
    if not name or not name.strip():
        raise APIValueError('name', 'name cannot be empty')
    if not summary or not summary.strip():
        raise APIValueError('summary', 'summary cannot be empty')
    if not content or not content.strip():
        raise APIValueError('content', 'content cannot be empty')

    #获取指定id的API数据
    interface = yield from Interface.find(id)
    interface.name = name
    interface.summary = summary
    interface.content = content
    #保存
    yield from interface.update()
    return interface
Beispiel #5
0
def api_get_interface(*, id):
    #获取某个API的信息
    interface = yield from Interface.find(id)
    return interface