Esempio n. 1
0
def block_user_from_group_request_impl(args):
    try:
        admin = user_from_token(args['token'])
        group = group_from_id(int(args['group_id']))
        is_group_admin(admin, group)
        group.subscriptions.remove(user_from_id(args['user_id']))
        group.blocked_users.append(user_from_id(args['user_id']))
        db.session.commit()
        return Response(True, "Blocked!", GroupSchema().dumps(group).data).output()
    except Exception as exception:
        return Response(False, str(exception), None).output()
Esempio n. 2
0
def fetch_user_request_impl(args):
    try:
        user = user_from_token(args['token'])
        user_to_fetch = user_from_id(args['user_id'])
        groups = json.loads(GroupSchema(many=True).dumps(groups_from_user(user_to_fetch)).data)
        posts = json.loads(PostSchema(many=True).dumps(posts_from_user_paginate(user, user_to_fetch)).data)
        marshal_user = json.loads(UserSchemaWithPostsAndGroups().dumps(user_to_fetch).data)
        response = dict(user=marshal_user, posts=posts, groups=groups)
        return Response(True, "User Searched", json.dumps(response)).output()
    except Exception as exception:
        return Response(False, str(exception), None).output()
Esempio n. 3
0
def add_admin_request_impl(args):
    try:
        admin = user_from_token(args['token'])
        group = group_from_id(args['group_id'])
        is_group_admin(admin, group)
        for user_id in args['user_ids']:
            group.admins.append(user_from_id(user_id))
        db.session.commit()
        return Response(True, "Admin Added!", GroupSchema().dumps(group).data).output()
    except Exception as exception:
        return Response(False, str(exception), None).output()
Esempio n. 4
0
def invite_request_impl(args):
    try:
        inviter = user_from_token(args['token'])
        group = group_from_id(args['group_id'])
        invitee = user_from_id(args['user_id'])
        invite = Invite(inviter, invitee, group)
        db.session.add(invite)
        db.session.commit()
        invited_for_group.delay(invite, group)
        return Response(True, "Invitation Made", InviteSchema().dumps(invite).data).output()
    except Exception as exception:
        return Response(False, str(exception), None).output()
Esempio n. 5
0
def approve_join_request_impl(args):
    try:
        admin = user_from_token(args["token"])
        user_pending = user_from_id(args["user_id"])
        group = group_from_id(int(args["group_id"]))
        is_group_admin(admin, group)
        approved = bool(args["approved"])
        if approved:
            approve_subscription_of_user(user_pending, group)
        else:
            remove_subscription_of_user(user_pending, group)
        db.session.commit()
        return Response(
            True, "Joined Group!" if approved is True else "Cannot Join Group!", GroupSchema().dumps(group).data
        ).output()
    except Exception as exception:
        return Response(False, str(exception), None).output()