import boto3
import json
import os

class SitewiseAssetsCache:
    """
    Interactions with dynamo table - saving and retrieving information
    """
    def __init__(self, table_name=os.environ.get("DYNAMO_ASSETS_TABLE_NAME"), aws_region=os.environ.get("AWS_REGION")):
        self.table_name = table_name
        self.aws_region = aws_region
        self.dynamodb = boto3.resource('dynamodb', region_name=self.aws_region)
        self.table = self.dynamodb.Table(self.table_name)

    def get(self, record_id):
        response = self.table.get_item(Key={ 'Id': record_id })
        return response.get('Item') if response is not None else None

    def save(self, item):
        self.table.put_item(Item=item)

    def __convert(self, object):
        return json.loads(json.dumps(object), parse_float=str)