예제 #1
0
def handler(event, context):
    event['import_type'] = None

    am_api = AssetManagersInterface(environment=ENVIRONMENT)
    token = am_api.session.tokens['IdToken']
    user_attributes = jwt.decode(token, verify=False)
    user_amid = user_attributes.get('custom:asset_manager_id')
    if not user_amid:
        raise AttributeError(
            'Invalid credentials. Could not determine user asset manager id.')

    relationships = am_api.retrieve_user_relationships(
        user_asset_manager_id=user_amid)
    if not relationships:
        raise ValueError('User does not have any Active relationships')

    asset_manager_id = None
    # Find the first non-demo account
    for relationship in relationships:
        asset_manager = am_api.retrieve(relationship.asset_manager_id)
        if asset_manager.account_type != 'Demo':
            asset_manager_id = asset_manager.asset_manager_id
            break

    if not asset_manager_id:
        raise ValueError(
            'Could not find a valid asset manager for the specified user.')

    event['asset_manager_id'] = asset_manager_id
    return event
예제 #2
0
def interface_direct_class(data_class):
    """help to direct to the correct interface interacting with DB by class name only"""
    if data_class in ASSET:
        interface = AssetsInterface()
    elif data_class in PARTY:
        interface = PartiesInterface()
    elif data_class in BOOK:
        interface = BooksInterface()
    elif data_class in CORPORATE_ACTION:
        interface = CorporateActionsInterface()
    elif data_class in MARKET_DATA:
        interface = MarketDataInterface()
    elif data_class in TRANSACTION:
        interface = TransactionsInterface()
    else:
        interface = AssetManagersInterface()
    return interface
예제 #3
0
 def setUp(self):
     self.longMessage = True  # Print complete error message on failure
     self.asset_managers_interface = AssetManagersInterface()
     self.asset_manager_id = random.randint(1, 2**31-1)
     self.related_id = random.randint(1, 2**31-1)