def __update_event(self):
        # authorizerが指定されてなかったら何もしない
        if not self.event.get('requestContext') or not self.event['requestContext'].get('authorizer'):
            return

        # {"requestContext": {"authorizer": {"principalId": "XXX"}}} が存在する場合はCustomAuthorizer経由
        principal_id = self.event['requestContext']['authorizer'].get('principalId')

        if principal_id:
            # cognito:username にuser_idが入っていることを期待している関数のためにcognito:usernameにprincipal_idをセットする
            self.event['requestContext']['authorizer']['claims'] = {
                'cognito:username': principal_id,
                'phone_number_verified': 'true',
                'email_verified': 'true'
            }
            # db 上に private_eth_address が設定されていた場合は追加
            if self.dynamodb:
                address = UserUtil.get_private_eth_address_from_db(self.dynamodb, principal_id)
                if address:
                    self.event['requestContext']['authorizer']['claims']['custom:private_eth_address'] = address
 def test_get_private_eth_address_from_db_ok_not_exists_private_eth_address(
         self):
     result = UserUtil.get_private_eth_address_from_db(
         self.dynamodb, self.user_configurations_items[1]['user_id'])
     self.assertIsNone(result)
 def test_get_private_eth_address_from_db_ok_not_exists_configuration_data(
         self):
     result = UserUtil.get_private_eth_address_from_db(
         self.dynamodb, 'not-exists')
     self.assertIsNone(result)
 def test_get_private_eth_address_from_db_ok_exists_configuration_data(
         self):
     result = UserUtil.get_private_eth_address_from_db(
         self.dynamodb, self.user_configurations_items[0]['user_id'])
     self.assertEqual(
         self.user_configurations_items[0]['private_eth_address'], result)