async def api_create_blog_v2(request, *, name, summary, content): check_user(request.__user__) check_string(name=name, summary=summary, content=content) blog = Blog(user_id=request.__user__.id, user_name=request.__user__.name, user_image=request.__user__.image, name=name.strip(), summary=summary.strip(), content=content.strip()) await blog.save() return blog.to_json()
async def api_update_blog(id, request, *, name, summary, content): check_user(request.__user__) check_string(name=name, summary=summary, content=content) blog = await Blog.find(id) blog.name = name.strip() blog.summary = summary.strip() blog.content = content.strip() await blog.update() return blog
async def api_delete_item_v2(table, id, request): models = {'user': User, 'blog': Blog, 'comment': Comment} check_user(request.__user__) item = await models[table].find(id) if item: await item.remove() else: logging.warn('id: %s not exist in %s' % (id, table)) return dict(id=id)
async def api_update_blog_v2(id, request, *, name, summary, content): check_user(request.__user__) check_string(name=name, summary=summary, content=content) blog = await Blog.find(id) blog.name = name.strip() blog.summary = summary.strip() blog.content = content.strip() await blog.update() return blog.to_json()
async def api_create_blog(request, *, name, summary, content): check_user(request.__user__) check_string(name=name, summary=summary, content=content) blog = Blog(user_id=request.__user__.id, user_name=request.__user__.name, user_image=request.__user__.image, name=name.strip(), summary=summary.strip(), content=content.strip()) await blog.save() return blog
async def api_create_comment_v2(id, request, *, content, time): user = request.__user__ check_user(user, check_admin=False) check_string(content=content) blog = await Blog.find(id) if blog is None: raise APIResourceNotFoundError('Blog') comment = Comment(blog_id=blog.id, user_id=user.id, user_name=user.name, user_image=user.image, content=content.lstrip('\n').rstrip()) await comment.save() comments = await Comment.findAll('blog_id = ? and created_at > ?', [id, time], orderBy='created_at desc') return dict(comments=[c.to_json(marked=True) for c in comments])
async def api_delete_item(table, id, request): models = { 'users': User, 'blogs': Blog, 'comments': Comment, 'oauth': Oauth } check_user(request.__user__) item = await models[table].find(id) if item: await item.remove() else: logging.warn('id: %s not exist in %s' % (id, table)) if table == 'blogs': comments = await Comment.findAll('blog_id = ?', [id]) for comment in comments: await comment.remove() return dict(id=id)