def new(phone_number): item = { 'phone_number': {'S': sanitize_phone_number(phone_number)}, 'consumptions': {'N': str(Config.FREE_CONSUMPTIONS)} } put(TABLE_NAME, item) return item
def get(phone_number): response = dynamo_client.get_item( TableName=TABLE_NAME, Key={'phone_number': {'S': sanitize_phone_number(phone_number)}} ) if 'Item' in response: return response['Item'] else: return None
def new(pile_id, recipient_phone_number, sender_name, pile_name, timestamp): item = { 'pile_id': {'S': pile_id}, 'phone_number': {'S': sanitize_phone_number(recipient_phone_number)}, 'sender_name': {'S': sender_name}, 'pile_name': {'S': pile_name}, 'timestamp': {'S': timestamp.strftime('%Y-%m-%d %H:%M:%S')}, } put(TABLE_NAME, item) return item
def add_metadata(phone_number, key, value): dynamo_client.update_item( TableName=TABLE_NAME, Key={ 'phone_number': {"S": sanitize_phone_number(phone_number)} }, AttributeUpdates={ key: { "Action": "PUT", "Value": {"S": str(value)} } } )
def modify_consumptions(phone_number, consumptions=1): dynamo_client.update_item( TableName=TABLE_NAME, Key={ 'phone_number': {"S": sanitize_phone_number(phone_number)} }, AttributeUpdates={ "consumptions": { "Action": "ADD", "Value": {"N": str(consumptions * -1)} }, "message_count": { "Action": "ADD", "Value": {"N": str(consumptions * 1)} } } )