"""Create the Cypher queries for creating MoneyHub profiles.""" #Appropriate cypher for create relation between identity and MoneyhubProfile should be added to 02_refresh_queries.cypher from collections import namedtuple import re def get_name(email): """Get the name from an email address. Args: email (str): Email to extract the name from Returns: str: The name portion of the email """ return re.sub(r'^(.*?)(@(.*))?$', r'\1', email) User = namedtuple('User', ['email', 'profile_id']) orchard_user_list = [ User('aentwistle@sonymusic-pde.com', 60973), User('agolovko@sonymusic-pde.com', 10666420), User('amccown@sonymusic-pde.com', 10273953), User('anavalu@sonymusic-pde.com', 81585), User('anorton@sonymusic-pde.com', 10000666), User('apapathanasiou@theorchard.com', 10273945), User('ashingte@theorchard.com', 10273960), User('aurora.drummond@theorchard.com', 10000004), User('bburton.ext@sonymusic-pde.com', 10273942), User('bmeise@sonymusic-pde.com', 10273944), User('ciara.mcsorley@theorchard.com', 10000006), User('dcelotti@sonymusic-pde.com', 10000246), User('dczinsky@sonymusic-pde.com', 34022), User('dmolina@theorchard.com', 10000011), User('eidelbaev@theorchard.com', 81593), User('ekulagina@theorchard.com', 10273949), User('epohrebna@sonymusic-pde.com', 10273978), User('evlastos@sonymusic-pde.com', 10111332), User('gmaroulis@sonymusic-pde.com', 10941528), User('hannah.simmonds@theorchard.com', 10000007), User('iivankov@theorchard.com', 81588), User('iyepes-arroyo@sonymusic-pde.com', 10001332), User('jackie.eden@theorchard.com', 10000010), User('jbrooks@sonymusic-pde.com', 10000002), User('jevers@theorchard.com', 10000009), User('jhanse@theorchard.com', 10000003), User('jviletto@sonymusic-pde.com', 10000001), User('jzheng@sonymusic-pde.com', 10273955), User('marta.rybak@theorchard.com', 10000005), User('menger@sonymusic-pde.com', 10273941), User('mlorenz@sonymusic-pde.com', 10273950), User('mmachado@sonymusic-pde.com', 10273951), User('mvercoelen@sonymusic-pde.com', 10273957), User('nsnyder@sonymusic-pde.com', 10273948), User('oyatsuk@sonymusic-pde.com', 90892), User('pdumoulin@sonymusic-pde.com', 10273946), User('sduberg@sonymusic-pde.com', 10273959), User('signatenko@sonymusic-pde.com', 170), User('tdenkinger@sonymusic-pde.com', 10247365), User('tholohan@theorchard.com', 10000008), User('tmartino@sonymusic-pde.com', 10273954), User('vzhyvotkov@sonymusic-pde.com', 81590), User('ymuryi@sonymusic-pde.com', 10273943), User('yzozulya@sonymusic-pde.com', 10273947), User('cpiancastelli@sonymusic-pde.com', 10009999), # Non-orchard identities User('ben@kitty-wizard.com', 10273961), User('mike+frenchkiss@mikelorenz.net', 10273962), ] awal_user_list = [ User('agolovko+awal@theorchard.com', 10001238), User('dcelotti+awal@theorchard.com', 10000248), User('epohrebna+awal@theorchard.com', 10001244), User('jviletto+awal@theorchard.com', 10001239), User('menger+awal@theorchard.com', 10001236), User('oyatsuk+awal@theorchard.com', 10001237), # Non-orchard identities User('vimal.nagaraj@sonymusic.com', 10001234), ] gda_test_accounts = [ 35968, 35970, 35971, 35972, 35974, 35975, 35976, 35977, 35978, 35979, 35980, 35981, ] user_vendor_map = { 'agolovko@sonymusic-pde.com': gda_test_accounts, 'agolovko+awal@theorchard.com': gda_test_accounts, 'amccown@sonymusic-pde.com': [25153], 'anorton@theorchard.com': [25153] + gda_test_accounts, 'apapathanasiou@theorchard.com': [25153], 'ashingte@theorchard.com': [25153], 'aurora.drummond@theorchard.com': gda_test_accounts, 'bburton@sonymusic-pde.com': [25153], 'ben@kitty-wizard.com': [25153], 'bmeise@sonymusic-pde.com': [25153], 'ciara.mcsorley@theorchard.com': gda_test_accounts, 'dcelotti@sonymusic-pde.com': [8869, 18730, 25153, 25464], 'dcelotti+awal@theorchard.com': [ 77, 8869, 25153, 26364, 26741, 25754] + gda_test_accounts, 'dmolina@theorchard.com': gda_test_accounts, 'ekulagina@theorchard.com': [25153], 'epohrebna@sonymusic-pde.com': gda_test_accounts, 'epohrebna+awal@theorchard.com': gda_test_accounts, 'evlastos@sonymusic-pde.com': [25153], 'gmaroulis@sonymusic-pde.com': [25153], 'hannah.simmonds@theorchard.com': gda_test_accounts, 'jackie.eden@theorchard.com': [68321, 67367, 68519, 68250, 72350, 72473, 46443, 68745, 73108, 67706, 67979, 68794] + gda_test_accounts, 'jbrooks@sonymusic-pde.com': [25153, 35968], 'jevers@theorchard.com': gda_test_accounts, 'jhanse@theorchard.com': gda_test_accounts, 'jviletto@sonymusic-pde.com': [25153] + gda_test_accounts, 'jviletto+awal@theorchard.com': gda_test_accounts, 'jzheng@sonymusic-pde.com': [25153], 'marta.rybak@theorchard.com': gda_test_accounts, 'menger@sonymusic-pde.com': [25153] + gda_test_accounts, 'menger+awal@theorchard.com': gda_test_accounts, 'mike+frenchkiss@mikelorenz.net': [25153], 'mlorenz@sonymusic-pde.com': [25153], 'mmachado@sonymusic-pde.com': [25153], 'mvercoelen@sonymusic-pde.com': [25153], 'nsnyder@sonymusic-pde.com': [25153], 'oyatsuk@sonymusic-pde.com': gda_test_accounts, 'oyatsuk+awal@theorchard.com': gda_test_accounts, 'pdumoulin@sonymusic-pde.com': [25153], 'sduberg@sonymusic-pde.com': [25153], 'tdenkinger@sonymusic-pde.com': [25153], 'tholohan@theorchard.com': gda_test_accounts, 'tmartino@sonymusic-pde.com': [25153], 'vimal.nagaraj@sonymusic.com': [35976, 35977], 'ymuryi@sonymusic-pde.com': [25153], 'yzozulya@sonymusic-pde.com': [25153], 'cpiancastelli@sonymusic-pde.com': [34514], } orchard_profile_template = """ MATCH (i:Identity {{email: '{email}'}}), (v:Vendor {{id: '*'}}) MERGE (i)-[:HAS_PROFILE]->(p:Profile {{profileType: 'MoneyhubProfile'}}) ON CREATE SET p.profileId = {profile_id}, p.profileName = '{name} MoneyhubProfile', p.roles = ['accounting'], p.uuid = randomUUID() MERGE (p)-[:HAS_ACCESS_TO]->(v);""" awal_profile_template = """ MATCH (i:Identity {{email: '{email}'}}), (v:Vendor {{id: '*'}}) MERGE (i)-[:HAS_PROFILE]->(p:Profile {{profileType: 'MoneyhubProfile'}}) ON CREATE SET p.profileId = {profile_id}, p.profileName = '{name} MoneyhubProfile', p.roles = ['accounting'], p.brand = 'awal', p.uuid = randomUUID() MERGE (p)-[:HAS_ACCESS_TO]->(v);""" vendor_access_template = """ MATCH (i:Identity {{email: '{email}'}})-[:HAS_PROFILE]->(p:Profile {{profileType: "MoneyhubProfile"}}), (v:Vendor) WHERE v.id IN [{vendor_ids}] MERGE (p)-[:HAS_ACCESS_TO]->(v);""" print('\n// Orchard MoneyHub profiles') for user in orchard_user_list: print(orchard_profile_template.format( email=user.email, profile_id=user.profile_id, name=get_name(user.email))) print('\n// Orchard AWAL profiles') for user in awal_user_list: print(awal_profile_template.format( email=user.email, profile_id=user.profile_id, name=get_name(user.email))) print('\n// MoneyHub vendor access') for email in user_vendor_map: vendor_ids = ','.join([ str(vendor_id) for vendor_id in user_vendor_map[email]]) print(vendor_access_template.format( email=email, vendor_ids=vendor_ids))