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)
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 }
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
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
def api_get_interface(*, id): #获取某个API的信息 interface = yield from Interface.find(id) return interface