in server/TenantManagementService/tenant-management.py [0:0]
def create_tenant(event, context):
api_gateway_url = ''
tenant_details = json.loads(event['body'])
dynamodb = boto3.resource('dynamodb')
table_tenant_details = dynamodb.Table('ServerlessSaaS-TenantDetails')#TODO: read table names from env vars
table_system_settings = dynamodb.Table('ServerlessSaaS-Settings')
try:
# for pooled tenants the apigateway url is saving in settings during stack creation
# update from there during tenant creation
if(tenant_details['dedicatedTenancy'].lower()!= 'true'):
settings_response = table_system_settings.get_item(
Key={
'settingName': 'apiGatewayUrl-Pooled'
}
)
api_gateway_url = settings_response['Item']['settingValue']
response = table_tenant_details.put_item(
Item={
'tenantId': tenant_details['tenantId'],
'tenantName' : tenant_details['tenantName'],
'tenantAddress': tenant_details['tenantAddress'],
'tenantEmail': tenant_details['tenantEmail'],
'tenantPhone': tenant_details['tenantPhone'],
'tenantTier': tenant_details['tenantTier'],
'apiKey': tenant_details['apiKey'],
'userPoolId': tenant_details['userPoolId'],
'appClientId': tenant_details['appClientId'],
'dedicatedTenancy': tenant_details['dedicatedTenancy'],
'isActive': True,
'apiGatewayUrl': api_gateway_url
}
)
except Exception as e:
raise Exception('Error creating a new tenant', e)
else:
return utils.create_success_response("Tenant Created")