def users_can_chat(user_id): sender_id = g.current_user.id receiver_id = user_id if (Like.is_liked(sender_id, receiver_id) and Like.is_liked(receiver_id, sender_id)) \ and not (User.user_is_blocked(sender_id, receiver_id) or User.user_is_blocked(receiver_id, sender_id)): return jsonify(ok=True) return jsonify(ok=False)
def get_user_by_id(user_id): user = User.get_by_id(user_id) if user: payload = user.get_view("public") if request.args.get('with_images'): user_images = Image.get_user_images(user.id) payload['images'] = [] if user_images: payload['images'] = [{ "src": i.image_src, "id": i.id } for i in user_images] if request.args.get('with_like'): has_like = Like.is_liked(g.current_user.id, user_id) likes_me = Like.is_liked(user_id, g.current_user.id) payload['has_like'] = has_like payload['likes_me'] = likes_me # If I blocked this user [blocked, blocker] if User.user_is_blocked(user_id, g.current_user.id): u_is_blocked = True else: u_is_blocked = False if request.args.get('with_block'): payload['is_blocked'] = u_is_blocked # If user didn't block me [blocked, blocker] # Send notification if not User.user_is_blocked(g.current_user.id, user_id): if g.current_user.id != user_id: text = Notification.notification_text('view', g.current_user) notification = Notification.from_dict({ "user_id": user_id, "text": text, "type": "view" }) notification.create() # View history if g.current_user.id != user_id: History.add_to_history(g.current_user.id, user_id) return jsonify(user=payload) abort(404)
def create_message(): req_data = request.get_json() print(req_data) form_values = { "text": { 'required': False, 'default': None, 'type': str, 'validator': None }, "receiver_id": { 'required': False, 'default': None, 'type': int, 'validator': None } } check_fields(req_data, form_values) sender_id = g.current_user.id receiver_id = int(req_data["receiver_id"]) if (Like.is_liked(sender_id, receiver_id) and Like.is_liked(receiver_id, sender_id)) \ and (not User.user_is_blocked(sender_id, receiver_id) and not User.user_is_blocked(receiver_id, sender_id)): message = Message.from_dict({ "sender_id": sender_id, "receiver_id": receiver_id, "text": req_data["text"] }) message.create() text = Notification.notification_text('message', g.current_user) notification = Notification.from_dict({ "user_id": receiver_id, "text": text, "type": "message" }) notification.create() return jsonify(ok=True) abort(http.HTTPStatus.FORBIDDEN)