def registerDocument()

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


    def registerDocument(self, documentId, bucketName, documentName, documentLink, principalIAMWriter, timestamp, documentMetadata, documentVersion=None):
        ret = None
        
        dynamodb = AwsHelper().getResource("dynamodb")
        table = dynamodb.Table(self._registryTableName)
        item = {
            "documentId": documentId,
            "principalIAMWriter": principalIAMWriter,
            "bucketName": bucketName,
            "documentName": documentName,
            "documentLink": documentLink,
            "documentMetadata": documentMetadata,
            "timestamp": timestamp
        }
        if documentVersion:
            item['documentVersion'] = documentVersion
        try:
            table.put_item(
                ConditionExpression = "attribute_not_exists(documentId)",
                Item = item
            )
            ret = {
                'Status': 200
            }
        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 updating document',
                'Status': 400
            }
        return ret