def blog_comment(request): if request.user.is_authenticated: if 'blog_id' in request.POST and 'text' in request.POST and len( request.POST['text'].strip()) > 2: ref = None if 'ref_comment_id' in request.POST: ref_id = request.POST['ref_comment_id'] try: ref = Comment.get_by_id(ref_id) except: return apiRespond(400, msg='Reference comment not found') try: b = Blog.get_by_id(request.POST['blog_id']) except: return apiRespond(400, msg='Target blog not found') else: comment = request.user.comment( blog=b, text=request.POST['text'].strip(), reference=ref) Alert.create_alert( ref_user=request.user, type=Alert.COMMENT_REPLY if ref else Alert.COMMENT, blog=b) return apiRespond(201, comment=comment.get_obj()) else: return apiRespond(400, msg='Required fields missing') else: return apiRespond(401, msg='User not logged in')
def get_new_alerts(request): if request.user.is_authenticated: try: new_alerts = Alert.get_new_alerts(request.user) old_alerts = Alert.get_old_alerts(request.user) except: return apiRespond(400, msg=f'Something went wrong.') else: return apiRespond(201, new_alerts=new_alerts, old_alerts=old_alerts) else: return apiRespond(401, msg='User not logged in')
def pingback(request): if 'view_key' in request.POST: try: view = View.get_by_key(request.POST['view_key']) except: return apiRespond(400, msg='View not found') else: pingbacks = view.pingback() return apiRespond(201, pingbacks=pingbacks) else: return apiRespond(400, msg='Pingback: Required fields missing')
def set_alerts_seen(request): if request.user.is_authenticated: if 'alerts_id' in request.POST: try: is_success = Alert.mark_group_seen(request.POST['alerts_id'].split(',')) except: return apiRespond(400, msg=f'Something went wrong.') else: if is_success: return apiRespond(201, msg='Success') else: return apiRespond(400, msg='Required fields missing') else: return apiRespond(401, msg='User not logged in')
def add_blog_topic(request): if request.user.is_authenticated: if 'blog_id' in request.POST and 'topic' in request.POST: try: b = Blog.get_by_id(request.POST['blog_id']) except: return apiRespond(400, msg='Blog not found') else: if b.author == request.user: topic = request.POST['topic'].strip( ).lower().replace(" ", "") if len(topic) > 1: if topic not in Topic.BANNED: if not b.has_topic(topic): b.add_topic(topic) return apiRespond(201, topic=topic) else: return apiRespond(400, msg='Topic already tagged') else: return apiRespond(400, msg='This topic is disabled') else: return apiRespond(400, msg='Topic name too short') else: return apiRespond(400, msg='Access denied') else: return apiRespond(400, msg='Required fields missing') else: return apiRespond(401, msg='User not logged in')
def blog_unreact(request): if request.user.is_authenticated: if 'blog_id' in request.POST: try: b = Blog.get_by_id(request.POST['blog_id']) except: return apiRespond(400, msg='Target blog not found') else: res = request.user.unreact(blog=b) return apiRespond(201, result=res) else: return apiRespond(400, msg='Required fields missing') else: return apiRespond(401, msg='User not logged in')
def unfollow_user(request): if request.user.is_authenticated: if 'user_id' in request.POST: try: target = User.get_by_id(request.POST['user_id']) except: return apiRespond(400, msg='Target user not found') else: result = request.user.unfollow(target) return apiRespond(201, result=result) else: return apiRespond(400, msg='Required fields missing') else: return apiRespond(401, msg='User not logged in')
def blog_uncomment(request): if request.user.is_authenticated: if 'comment_id' in request.POST: try: comment = Comment.get_by_id(request.POST['comment_id']) except: return apiRespond(400, msg='Target comment not found') else: if comment.user == request.user: comment.delete() return apiRespond(201, result=True) else: return apiRespond(400, msg='Required fields missing') else: return apiRespond(401, msg='User not logged in')
def follow_user(request): if request.user.is_authenticated: if 'user_id' in request.POST: try: target = User.get_by_id(request.POST['user_id']) except: return apiRespond(400, msg='Target user not found') else: result, obj = request.user.follow(target) Alert.create_alert(user=target, ref_user=request.user, type=Alert.FOLLOW, follow=obj) return apiRespond(201, result=result) else: return apiRespond(400, msg='Required fields missing') else: return apiRespond(401, msg='User not logged in')
def blog_react(request): if request.user.is_authenticated: if 'blog_id' in request.POST and 'reaction' in request.POST and request.POST['reaction'] in Reaction.CODES: reaction = request.POST['reaction'] try: b = Blog.get_by_id(request.POST['blog_id']) except: return apiRespond(400, msg='Target blog not found') else: obj = request.user.react(blog=b, reaction=reaction) return apiRespond(201, result=True) else: return apiRespond(400, msg='Required fields missing') else: return apiRespond(401, msg='User not logged in')
def delete_blog(request): if request.user.is_authenticated: if 'blog_id' in request.POST: try: b = Blog.get_by_id(request.POST['blog_id']) except: return apiRespond(400, msg='Blog not found') else: if b.author == request.user: b.remove() return apiRespond(201, removed=True) else: return apiRespond(400, msg='Access denied') else: return apiRespond(400, msg='Required fields missing') else: return apiRespond(401, msg='User not logged in')
def set_blog_content(request): if request.user.is_authenticated: if 'blog_id' in request.POST and 'content' in request.POST: try: b = Blog.get_by_id(request.POST['blog_id']) except: return apiRespond(400, msg='Blog not found') else: if b.author == request.user: content = request.POST['content'] b.update_content(content) return apiRespond(201) else: return apiRespond(400, msg='Access denied') else: return apiRespond(400, msg='Required fields missing') else: return apiRespond(401, msg='User not logged in')
def unpublish_blog(request): if request.user.is_authenticated: if 'blog_id' in request.POST: try: b = Blog.get_by_id(request.POST['blog_id']) except: return apiRespond(400, msg='Blog not found') else: if b.author == request.user: b.unpublish() Alert.alerts_for_new_blog(blog=b, delete=True) return apiRespond(201, is_published=b.is_published) else: return apiRespond(400, msg='Access denied') else: return apiRespond(400, msg='Required fields missing') else: return apiRespond(401, msg='User not logged in')
def set_blog_img(request): if request.user.is_authenticated: if 'blog_id' in request.POST and 'img_url' in request.POST: try: b = Blog.get_by_id(request.POST['blog_id']) except: return apiRespond(400, msg='Blog not found') else: if b.author == request.user: img_url = request.POST['img_url'].strip() if len(img_url) > 2: b.update_img(img_url) return apiRespond(201, img_url=img_url) else: return apiRespond(400, msg='img_url too short') else: return apiRespond(400, msg='Access denied') else: return apiRespond(400, msg='Required fields missing') else: return apiRespond(401, msg='User not logged in')
def remove_blog_topic(request): if request.user.is_authenticated: if 'blog_id' in request.POST and 'topic' in request.POST: try: b = Blog.get_by_id(request.POST['blog_id']) except: return apiRespond(400, msg='Blog not found') else: if b.author == request.user: topic = request.POST['topic'].strip( ).lower().replace(" ", "") if b.remove_topic(topic): return apiRespond(201, topic=topic) else: return apiRespond(400, msg='Could not remove the topic') else: return apiRespond(400, msg='Access denied') else: return apiRespond(400, msg='Required fields missing') else: return apiRespond(401, msg='User not logged in')
def set_blog_title(request): if request.user.is_authenticated: if 'blog_id' in request.POST and 'title' in request.POST: try: b = Blog.get_by_id(request.POST['blog_id']) except: return apiRespond(400, msg='Blog not found') else: if b.author == request.user: title = request.POST['title'].strip() if len(title) > 2: b.update_title(title) return apiRespond(201, title=title) else: return apiRespond(400, msg='Title too short') else: return apiRespond(400, msg='Access denied') else: return apiRespond(400, msg='Required fields missing') else: return apiRespond(401, msg='User not logged in')