def get_request_body()

in provisioning_lambda/lambda_function.py [0:0]


def get_request_body(event):
    body = json.loads(event.get('body', '{}'))
    # check DSN
    if not body.get('DSN'):
        raise InvalidRequestException('Missing required field: DSN')
    elif len(body['DSN']) > 115:
        raise InvalidRequestException('The DSN must be between 1 and 115 long.')
    else:
        pattern = re.compile('[^\\w\\-]')
        if pattern.match(body['DSN']):
            raise InvalidRequestException('DSN Must contain only alphanumeric characters and/or the following: -_')
    # check public key
    if not body.get('publicKey'):
        raise InvalidRequestException('Missing required field: publicKey')
    else:
        try:
            body['publicKey'] = X25519PublicKey.from_public_bytes(
                base64.b64decode(body['publicKey'])
            )
        except Exception:
            raise InvalidRequestException('Invalid public key')
    return body