def get(self): try: user_id = get_jwt_identity() user = User.objects.get(id=user_id) ids = user.following ids.append(user) posts = Post.objects.filter(author__nin=ids, hashtags__in=user.interests) if len(posts) == 0: posts = Post.objects.filter(author__nin=ids) posts = [convert_post(ob) for ob in posts] posts.sort(key=operator.itemgetter('created_at'), reverse=True) return Response(JSONEncoder().encode(posts), mimetype="application/json", status=200) except InvalidQueryError: raise SchemaValidationError except DoesNotExist: raise DocumentMissing except Exception: raise InternalServerError
def get(self, id): try: user_id = get_jwt_identity() user = User.objects.exclude('password').get(id=id) chat = Chat.objects.filter(type='public').first() clients = Chat.objects.filter(type='private') data = user.to_mongo() if user.mentor: data['mentor'] = user.mentor.to_mongo() data['posts'] = [ convert_post(ob) for ob in Post.objects.filter(author=id) ] data['posts'].sort(key=operator.itemgetter('created_at'), reverse=True) if chat: data['chat_users'] = len(chat.admins) + len(chat.users) data['clients'] = len(clients) return Response(JSONEncoder().encode(data), mimetype="application/json", status=200) except DoesNotExist: raise DocumentMissing except Exception: raise InternalServerError
def get(self, search): try: user_id = get_jwt_identity() user = User.objects.get(id=user_id) regex = re.compile('.*' + search + '.*', re.IGNORECASE) posts = Post.objects.filter(title=regex) interests = Interest.objects.filter(title=regex) users = User.objects.filter(Q(name=regex) | Q(surname=regex)) posts = [ob.title for ob in posts] interests = [ob.title for ob in interests] users = [ob.name + ' ' + ob.surname for ob in users] suggestions = interests + posts + users if len(suggestions) > 5: suggestions = suggestions[0:5] return Response(JSONEncoder().encode(suggestions), mimetype="application/json", status=200) except DoesNotExist: raise DocumentMissing except Exception as e: raise InternalServerError
def get(self, user_id): try: products = Product.objects(user=user_id) products = [product.to_mongo() for product in products] return Response(JSONEncoder().encode(products), mimetype="application/json", status=200) except Exception: raise InternalServerError
def get(self, id): try: post = Post.objects.get(id=id) return Response(JSONEncoder().encode(convert_post(post)), mimetype="application/json", status=200) except DoesNotExist: raise DocumentMissing except Exception: raise InternalServerError
def get(self): user_id = get_jwt_identity() user = User.objects.get(id=user_id) if not user: return { 'error': True, 'payload': 'User not found' }, 404 chats = Chat.objects.filter(Q(host=user) | Q(users__contains=user.id) | Q(admins__contains=user.id)) chats = [convert_chat_basic(chat, user) for chat in chats] return Response(JSONEncoder().encode(chats), mimetype="application/json", status=200)
def get(self): try: user_id = get_jwt_identity() calendar = Calendar.objects.get(user=user_id).to_mongo() return Response(JSONEncoder().encode(calendar), mimetype="application/json", status=200) except InvalidQueryError: raise SchemaValidationError except DoesNotExist: raise DocumentMissing except Exception: raise InternalServerError
def get(self, id): try: user_id = get_jwt_identity() sessions = Session.objects.filter(chats__contains=id) sessions = [convert_session(session) for session in sessions] return Response(JSONEncoder().encode(sessions), mimetype="application/json", status=200) except DoesNotExist: raise DocumentMissing except Exception as e: raise InternalServerError
def get(self, id): try: user_id = get_jwt_identity() body = request.get_json() chat = Chat.objects.get(id=id) actions = [convert_ob(action) for action in chat.actions] return Response(JSONEncoder().encode(actions), mimetype="application/json", status=200) except DoesNotExist: raise DocumentMissing except Exception as e: raise InternalServerError
def get(self): try: user_id = get_jwt_identity() user = User.objects.get(id=user_id) chats = Chat.objects(type='private', users__contains=user) all_sessions = [convert_session(session) for session in Session.objects(host=user)] for chat in chats: sessions = Session.objects(chats__contains=chat) for session in sessions: all_sessions.append(convert_session_chat(session, chat)) return Response(JSONEncoder().encode(all_sessions), mimetype="application/json", status=200) except DoesNotExist: raise DocumentMissing except Exception as e: raise InternalServerError
def get(self, search): try: user_id = get_jwt_identity() user = User.objects.get(id=user_id) regex = re.compile('.*' + search + '.*', re.IGNORECASE) posts = Post.objects.filter( Q(title=regex) | Q(content=regex) | Q(hashtags__icontains=search)) posts = [convert_post(ob) for ob in posts] posts.sort(key=operator.itemgetter('created_at'), reverse=True) users = filter_users(User.objects(id__ne=user.id), regex) users = [convert_user(ob) for ob in users] result = { 'users': users, 'posts': posts, 'following': [ob.id for ob in user.following] } if search not in user.recent_searches: print(user.recent_searches, search) if len(user.recent_searches) > 4: user.recent_searches.pop(0) user.recent_searches.append(search) user.save() return Response(JSONEncoder().encode(result), mimetype="application/json", status=200) except DoesNotExist: raise DocumentMissing except Exception as e: raise InternalServerError
def get(self, id): try: user_id = get_jwt_identity() user = User.objects.get(id=user_id) chat = Chat.objects.filter((Q(host=user) | Q(users__contains=user.id) | Q(admins__contains=user.id)) & Q(id=id)).first() if not chat: return { 'error': True, 'payload': 'Chat not found' }, 404 product = chat.product chat_info = ChatInfo.objects(chat=chat, user=user).first() if chat_info: chat_info.message = get_last_message(chat) chat_info.save() chat = convert_chat_full(chat) if 'product' in chat: chat['product'] = product.to_mongo() return Response(JSONEncoder().encode(chat), mimetype="application/json", status=200) except DoesNotExist: raise DocumentMissing except Exception as e: raise InternalServerError