merchant

Merchant backend to process payments, run by merchants
Log | Files | Refs | Submodules | README | LICENSE

meson.build (5765B)


      1 sqldir = get_option('datadir') / 'taler-merchant' / 'sql'
      2 
      3 # Input files for the amalgamated global_procedures.sql.
      4 # The order matters.
      5 sql_global_procedures = [
      6     '../pg_interval_to_start.sql',
      7     '../pg_base32_crockford.sql',
      8     '../pg_uri_escape.sql',
      9     '../pg_replace_placeholder.sql',
     10     '../get_report_by_token.sql',
     11     '../create_tables.sql',
     12     '../pg_fixup_instance_schema.sql',
     13     '../iterate_outdated_kyc_statuses.sql',
     14     '../iterate_wirewatch_accounts.sql',
     15     '../iterate_open_expected_transfers.sql',
     16     '../iterate_all_donau_instances.sql',
     17     '../do_solve_mfa_challenge.sql',
     18     '../iterate_pending_deposits.sql',
     19     '../iterate_pending_reports.sql',
     20     '../pg_select_accounts.sql',
     21     '../pg_create_instance_schema.sql',
     22     '../pg_merchant_send_signup_notification.sql',
     23     '../pg_create_instance_trigger.sql',
     24     '../gc.sql',
     25 ]
     26 
     27 gprocedures_sql = custom_target(
     28     'sql_global_procedures',
     29     input: sql_global_procedures,
     30     output: 'global_procedures.sql',
     31     capture: true,
     32     command: ['./gen-procedures.sh', 'merchant', '@INPUT@'],
     33     install: true,
     34     install_dir: sqldir,
     35 )
     36 
     37 sql_instance_procedures = [
     38     '../pg_statistics_helpers.sql',
     39     '../pg_do_handle_inventory_changes.sql',
     40     '../pg_do_handle_category_changes.sql',
     41     '../delete_order.sql',
     42     '../delete_product.sql',
     43     '../delete_unit.sql',
     44     '../insert_unit.sql',
     45     '../update_unit.sql',
     46     '../iterate_statistic_interval_amounts.sql',
     47     '../iterate_statistic_interval_counters.sql',
     48     '../insert_deposit_to_transfer.sql',
     49     '../insert_product.sql',
     50     '../insert_inventory_lock.sql',
     51     '../insert_issued_token.sql',
     52     '../insert_used_token.sql',
     53     '../insert_transfer_details.sql',
     54     '../update_product.sql',
     55     '../insert_kyc_status.sql',
     56     '../insert_kyc_failure.sql',
     57     '../set_tos_accepted_early.sql',
     58     '../update_category.sql',
     59     '../update_product_group.sql',
     60     '../update_money_pot.sql',
     61     '../update_money_pot_totals.sql',
     62     '../iterate_kyc_statuses.sql',
     63     '../insert_transfer.sql',
     64     '../insert_unclaim_signature.sql',
     65     '../insert_deposit_confirmation.sql',
     66     '../do_insert_account.sql',
     67     '../update_to_account_inactive.sql',
     68     '../do_expire_locks.sql',
     69     '../do_insert_fountain.sql',
     70     '../do_update_fountain.sql',
     71     '../do_fountain_withdraw.sql',
     72     '../pg_merchant_send_account_notification.sql',
     73     '../pg_merchant_account_trigger.sql',
     74     '../pg_merchant_send_kyc_notification.sql',
     75     '../pg_merchant_kyc_trigger.sql',
     76     '../pg_triggers.sql',
     77     '../pg_update_inventory_locked.sql',
     78 ]
     79 
     80 iprocedures_sql = custom_target(
     81     'instance_procedures',
     82     input: sql_instance_procedures,
     83     output: 'instance_procedures.sql',
     84     capture: true,
     85     command: ['./gen-procedures.sh', 'merchant_instances', '@INPUT@'],
     86     install: true,
     87     install_dir: sqldir,
     88 )
     89 
     90 # gen-procedures.sh wraps each concatenation above in a single
     91 # BEGIN ... COMMIT; make sure no input file closes that transaction early.
     92 test(
     93     'sql-procedures-transactions',
     94     find_program('check-procedures-tx.sh'),
     95     args: sql_global_procedures + sql_instance_procedures,
     96     workdir: meson.current_source_dir(),
     97     suite: ['backenddb'],
     98 )
     99 
    100 generated_sql = [
    101     ['drop.sql'],
    102     ['versioning.sql'],
    103     ['merchant-0001.sql'],
    104     ['merchant-0002.sql'],
    105     ['merchant-0003.sql'],
    106     ['merchant-0004.sql'],
    107     ['merchant-0005.sql'],
    108     ['merchant-0006.sql'],
    109     ['merchant-0007.sql'],
    110     ['merchant-0008.sql'],
    111     ['merchant-0009.sql'],
    112     ['merchant-0010.sql'],
    113     ['merchant-0011.sql'],
    114     ['merchant-0012.sql'],
    115     ['merchant-0013.sql'],
    116     ['merchant-0014.sql'],
    117     ['merchant-0015.sql'],
    118     ['merchant-0016.sql'],
    119     ['merchant-0017.sql'],
    120     ['merchant-0018.sql'],
    121     ['merchant-0019.sql'],
    122     ['merchant-0020.sql'],
    123     ['merchant-0021.sql'],
    124     ['merchant-0022.sql'],
    125     ['merchant-0023.sql'],
    126     ['merchant-0024.sql'],
    127     ['merchant-0025.sql'],
    128     ['merchant-0026.sql'],
    129     ['merchant-0027.sql'],
    130     ['merchant-0028.sql'],
    131     ['merchant-0029.sql'],
    132     ['merchant-0030.sql'],
    133     ['merchant-0031.sql'],
    134     ['merchant-0032.sql'],
    135     ['merchant-0033.sql'],
    136     ['merchant-0034.sql'],
    137     ['merchant-0035.sql'],
    138     # Note: 36 generated below!
    139     ['merchant-0037.sql'],
    140     ['merchant-0038.sql'],
    141     ['merchant-0039.sql'],
    142     ['merchant-0040.sql'],
    143     ['merchant-0041.sql'],
    144     ['merchant-0042.sql'],
    145     ['merchant-0043.sql'],
    146     ['merchant-0044.sql'],
    147     ['merchant-0045.sql'],
    148     ['merchant-0046.sql'],
    149     ['merchant-0047.sql'],
    150     ['merchant-0048.sql'],
    151     ['merchant-0049.sql'],
    152 ]
    153 
    154 migration_sql = []
    155 foreach g : generated_sql
    156     migration_sql += custom_target(
    157         'gen-merchantdb-' + g[0],
    158         input: g[0],
    159         output: g[0],
    160         capture: true,
    161         command: ['./amalgamate-sql.sh', '@INPUT@'],
    162         install: true,
    163         install_dir: sqldir,
    164     )
    165 endforeach
    166 
    167 
    168 migration_sql += custom_target(
    169     'gen-merchantdb-merchant_0036.sql',
    170     input: [
    171         'merchant-0036.sql.in',
    172         '../create_tables.sql',
    173         '../pg_create_instance_schema.sql',
    174         '../pg_fixup_instance_schema.sql',
    175         'merchant-0036-init.sql.fragment',
    176         'merchant-0036-copy.sql.fragment',
    177         'merchant-0036-drop.sql.fragment',
    178         'merchant-0036-setval.sql.fragment',
    179     ],
    180     output: ['merchant-0036.sql'],
    181     capture: true,
    182     command: ['./preprocess-sql.sh', '@INPUT@'],
    183     install: true,
    184     install_dir: sqldir,
    185 )
    186 
    187 test(
    188     'order-sequence-migrations',
    189     find_program('python3'),
    190     args: [
    191         files('../test_order_sequence_migrations.py'),
    192         meson.current_source_dir(),
    193         meson.current_build_dir(),
    194     ],
    195     depends: migration_sql,
    196     suite: ['backenddb'],
    197     timeout: 120,
    198 )