Ejemplo n.º 1
0
    def __get_server_and_member(self, discord_server, discord_user):
        member = Member.objects(discord=discord_user.id).first()
        server = Server.objects(id=discord_server.id).first()

        if not server:
            server = Server.create({
                'id': discord_server.id,
                'name': discord_server.name,
                'avatar': discord_server.icon_url or ''
            })

        if not member:
            member = Member.create({
                'discord': discord_user.id,
                'name': discord_user.name,
                'avatar': discord_user.avatar_url or ''
            })

        # Checks if member being added is in the server
        server_member = Member.objects(servers=discord_server.id,
                                       discord=discord_user.id).first()
        if not server_member:
            server.members.append(member)
            server.save()
            member.servers.append(discord_server.id)
            member.save()

        return (server, member)
Ejemplo n.º 2
0
def get_members() -> flask.Response:
    format = flask.request.args.get('format', '')
    name = flask.request.args.get('name', '')
    last_name = flask.request.args.get('lastName', '')
    fiscal_code = flask.request.args.get('fiscalCode', '')
    status = flask.request.args.get('status', '')

    members = Member.objects(
        Q(name__contains=name) & Q(last_name__contains=last_name)
        & Q(fiscal_code__contains=fiscal_code))

    if status != '':
        if status == 'true':
            members = list(filter(lambda member: member.is_enabled(), members))
        else:
            members = list(
                filter(lambda member: not member.is_enabled(), members))

    if format == 'pdf':
        columns: str = (flask.request.args.get('columns'))
        cols = columns.split(',')
        if len(cols) < 1:
            flask.abort(400)

        data = MembersPDF().generate_members_pdf(members, cols)
        return {'data': str(b64encode(data).decode("utf-8"))}

    return flask.jsonify([member.jsonify() for member in members])
Ejemplo n.º 3
0
def get_member(member_id: str = 0) -> flask.Response:
    if not bson.ObjectId.is_valid(member_id):
        flask.abort(400)

    member = Member.objects(id=member_id).first()
    if not member:
        flask.abort(404)

    return flask.jsonify(member.jsonify())
Ejemplo n.º 4
0
def delete_member(member_id: str) -> flask.Response:
    if not bson.ObjectId.is_valid(member_id):
        flask.abort(400)

    member: mongoengine.Document = Member.objects(id=member_id).first()
    if not member:
        flask.abort(404)

    member.delete()

    return ('', 200)
Ejemplo n.º 5
0
def update_member(member_id: str) -> flask.Response:
    if not bson.ObjectId.is_valid(member_id):
        flask.abort(400)

    name = flask.request.form.get('name')
    last_name = flask.request.form.get('last_name')
    birth_date = flask.request.form.get('birth_date')
    birth_place = flask.request.form.get('birth_place')
    fiscal_code = flask.request.form.get('fiscal_code')
    address = flask.request.form.get('address')
    zip_code = flask.request.form.get('zip_code')
    city = flask.request.form.get('city')
    province = flask.request.form.get('province')
    gender = flask.request.form.get('gender')
    phone = flask.request.form.get('phone')
    email = flask.request.form.get('email')

    member: mongoengine.Document = Member.objects(id=member_id).first()
    if not member:
        flask.abort(404)

    if name is not None:
        member.name = name
    if last_name is not None:
        member.last_name = last_name
    if birth_date is not None:
        member.birth_date = birth_date
    if birth_place is not None:
        member.birth_place = birth_place
    if fiscal_code is not None:
        member.fiscal_code = fiscal_code
    if address is not None:
        member.address = address
    if zip_code is not None:
        member.zip_code = zip_code
    if city is not None:
        member.city = city
    if province is not None:
        member.province = province
    if gender is not None:
        member.gender = gender
    if phone is not None:
        member.phone = phone
    if email is not None:
        member.email = email

    member.save()

    return member.jsonify()