Пример #1
0
def put_member(client: boto3.client, member):
    try:
        response = client.put_item(
            TableName=TABLE_NAME,
            Item={
                k: SERIALIZER.serialize(v)
                for k, v in Member.Schema().dump(member).items()
                if v != '' or v is not None
            })
    except ClientError as err:
        raise err
    else:
        return response
Пример #2
0
def get_members(client: boto3.client, guild_id):
    dynamodb = boto3.resource('dynamodb')
    try:
        table = dynamodb.Table(TABLE_NAME)
        result = table.query(
            KeyConditionExpression=Key('guild_id').eq(guild_id))
    except ClientError as err:
        raise err
    else:
        members = []
        if result.get('Items') is None:
            return None
        for item in result.get('Items'):
            member = Member.Schema().load(item, unknown=EXCLUDE, partial=True)
            members.append(member)

        return members
Пример #3
0
def get_member(client: boto3.client, guild_id, member_id):
    try:
        get_result = client.get_item(TableName=TABLE_NAME,
                                     Key={
                                         'guild_id': {
                                             'N': str(guild_id)
                                         },
                                         'member_id': {
                                             'N': str(member_id)
                                         }
                                     })
    except ClientError as err:
        raise err
    else:
        if get_result.get('Item') is None:
            return None
        deserialized = {
            k: DESERIALIZER.deserialize(v)
            for k, v in get_result.get('Item').items()
        }
        return Member.Schema().load(deserialized, unknown=EXCLUDE)