merchant

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

meson.build (4981B)


      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_create_instance_trigger.sql',
     23     '../gc.sql',
     24 ]
     25 
     26 gprocedures_sql = custom_target(
     27     'sql_global_procedures',
     28     input: sql_global_procedures,
     29     output: 'global_procedures.sql',
     30     capture: true,
     31     command: ['./gen-procedures.sh', 'merchant', '@INPUT@'],
     32     install: true,
     33     install_dir: sqldir,
     34 )
     35 
     36 sql_instance_procedures = [
     37     '../pg_statistics_helpers.sql',
     38     '../pg_do_handle_inventory_changes.sql',
     39     '../pg_do_handle_category_changes.sql',
     40     '../delete_order.sql',
     41     '../delete_product.sql',
     42     '../delete_unit.sql',
     43     '../insert_unit.sql',
     44     '../update_unit.sql',
     45     '../iterate_statistic_interval_amounts.sql',
     46     '../iterate_statistic_interval_counters.sql',
     47     '../insert_deposit_to_transfer.sql',
     48     '../insert_product.sql',
     49     '../insert_inventory_lock.sql',
     50     '../insert_issued_token.sql',
     51     '../insert_used_token.sql',
     52     '../insert_transfer_details.sql',
     53     '../update_product.sql',
     54     '../insert_kyc_status.sql',
     55     '../insert_kyc_failure.sql',
     56     '../update_category.sql',
     57     '../update_product_group.sql',
     58     '../update_money_pot.sql',
     59     '../update_money_pot_totals.sql',
     60     '../iterate_kyc_statuses.sql',
     61     '../insert_transfer.sql',
     62     '../insert_unclaim_signature.sql',
     63     '../insert_deposit_confirmation.sql',
     64     '../do_insert_account.sql',
     65     '../update_to_account_inactive.sql',
     66     '../do_expire_locks.sql',
     67     '../pg_merchant_send_account_notification.sql',
     68     '../pg_merchant_account_trigger.sql',
     69     '../pg_merchant_send_kyc_notification.sql',
     70     '../pg_merchant_kyc_trigger.sql',
     71     '../pg_triggers.sql',
     72     '../pg_update_inventory_locked.sql',
     73 ]
     74 
     75 iprocedures_sql = custom_target(
     76     'instance_procedures',
     77     input: sql_instance_procedures,
     78     output: 'instance_procedures.sql',
     79     capture: true,
     80     command: ['./gen-procedures.sh', 'merchant_instances', '@INPUT@'],
     81     install: true,
     82     install_dir: sqldir,
     83 )
     84 
     85 # gen-procedures.sh wraps each concatenation above in a single
     86 # BEGIN ... COMMIT; make sure no input file closes that transaction early.
     87 test(
     88     'sql-procedures-transactions',
     89     find_program('check-procedures-tx.sh'),
     90     args: sql_global_procedures + sql_instance_procedures,
     91     workdir: meson.current_source_dir(),
     92     suite: ['backenddb'],
     93 )
     94 
     95 generated_sql = [
     96     ['drop.sql'],
     97     ['versioning.sql'],
     98     ['merchant-0001.sql'],
     99     ['merchant-0002.sql'],
    100     ['merchant-0003.sql'],
    101     ['merchant-0004.sql'],
    102     ['merchant-0005.sql'],
    103     ['merchant-0006.sql'],
    104     ['merchant-0007.sql'],
    105     ['merchant-0008.sql'],
    106     ['merchant-0009.sql'],
    107     ['merchant-0010.sql'],
    108     ['merchant-0011.sql'],
    109     ['merchant-0012.sql'],
    110     ['merchant-0013.sql'],
    111     ['merchant-0014.sql'],
    112     ['merchant-0015.sql'],
    113     ['merchant-0016.sql'],
    114     ['merchant-0017.sql'],
    115     ['merchant-0018.sql'],
    116     ['merchant-0019.sql'],
    117     ['merchant-0020.sql'],
    118     ['merchant-0021.sql'],
    119     ['merchant-0022.sql'],
    120     ['merchant-0023.sql'],
    121     ['merchant-0024.sql'],
    122     ['merchant-0025.sql'],
    123     ['merchant-0026.sql'],
    124     ['merchant-0027.sql'],
    125     ['merchant-0028.sql'],
    126     ['merchant-0029.sql'],
    127     ['merchant-0030.sql'],
    128     ['merchant-0031.sql'],
    129     ['merchant-0032.sql'],
    130     ['merchant-0033.sql'],
    131     ['merchant-0034.sql'],
    132     ['merchant-0035.sql'],
    133     # Note: 36 generated below!
    134     ['merchant-0037.sql'],
    135     ['merchant-0038.sql'],
    136     ['merchant-0039.sql'],
    137     ['merchant-0040.sql'],
    138     ['merchant-0041.sql'],
    139     ['merchant-0042.sql'],
    140     ['merchant-0043.sql'],
    141     ['merchant-0044.sql'],
    142 ]
    143 
    144 foreach g : generated_sql
    145     custom_target(
    146         'gen-merchantdb-' + g[0],
    147         input: g[0],
    148         output: g[0],
    149         capture: true,
    150         command: ['./amalgamate-sql.sh', '@INPUT@'],
    151         install: true,
    152         install_dir: sqldir,
    153     )
    154 endforeach
    155 
    156 
    157 custom_target(
    158     'gen-merchantdb-merchant_0036.sql',
    159     input: [
    160         'merchant-0036.sql.in',
    161         'merchant-0036-init.sql.fragment',
    162         'merchant-0036-copy.sql.fragment',
    163         'merchant-0036-drop.sql.fragment',
    164         'merchant-0036-setval.sql.fragment',
    165     ],
    166     output: ['merchant-0036.sql'],
    167     capture: true,
    168     command: ['./preprocess-sql.sh', '@INPUT@'],
    169     install: true,
    170     install_dir: sqldir,
    171 )