Пример #1
0
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)