def queryDocumentId()

in code/lambda_layer/metadata-services/python/datastore.py [0:0]


    def queryDocumentId(self, targetBucketName, targetFileName, versionId=None):
        ret = None
        res = None
        
        dynamodb = AwsHelper().getResource("dynamodb")
        table = dynamodb.Table(self._lineageTableName)
        documentSignature = "BUCKET:{}@FILE:{}".format(targetBucketName, targetFileName)
        if versionId:
            documentSignature += "@VERSION:{}".format(versionId)
        try:
            res = table.query(
                KeyConditionExpression = Key('documentSignature').eq(documentSignature),
                IndexName = self._lineageIndexName
            )
        except ClientError as e:
            print(e)
            ret = {
                'Error': e.response['Error']['Message'],
                'Status': e.response['ResponseMetadata']['HTTPStatusCode']
            }
        except Exception as e:
            print(e)
            ret = {
                'Error': 'Unknown error occurred during querying the document Id',
                'Status': 400
            }
        try:
            items = res['Items']
            print(items)
            if len(items) == 0:
                ret = {
                    'Status': 404,
                    'documentId': None
                }
            else:
                items.sort(key=lambda item: datetime.fromisoformat(item['timestamp']))
                ret = {
                    'Status': 200,
                    'documentId': items[0]['documentId']
                }
        except Exception as e:
            print(e)
            ret = {
                'Error': 'Could not find the documentId for specified document Signature',
                'Status': 400
            }
            
        return ret