diff options
| author | ꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id> | 2022-10-09 15:45:41 +0800 |
|---|---|---|
| committer | ꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id> | 2022-10-09 15:45:41 +0800 |
| commit | 90f6ec9059362bb5db7964973f38109e6aa12b17 (patch) | |
| tree | b5ae7b122d9ca938ec862901ac256ec7dee15861 /midtrans.h | |
| parent | 21b0c331eddea2aac6b97bce7229008deb9969df (diff) | |
Replace switch & enum with generic selections
Diffstat (limited to 'midtrans.h')
| -rw-r--r-- | midtrans.h | 24 |
1 files changed, 6 insertions, 18 deletions
@@ -6,23 +6,6 @@ struct midtrans_transaction { long gross_amount; }; -enum midtrans_payment { - MIDTRANS_CREDITCARD = 0, - MIDTRANS_BANKTRANSFER, - MIDTRANS_BCA_KLIKBCA, - MIDTRANS_BCA_KLIKPAY, - MIDTRANS_BRI_EPAY, - MIDTRANS_CIMB_CLICKS, - MIDTRANS_DANAMON_ONLINE, - MIDTRANS_UOB_EZPAY, - MIDTRANS_QRIS, - MIDTRANS_GOPAY, - MIDTRANS_SHOPEEPAY, - MIDTRANS_CSTORE, - MIDTRANS_AKULAKU, - MIDTRANS_KREDIVO -}; - struct midtrans_banktransfer { char *bank; char *va_number; @@ -30,13 +13,18 @@ struct midtrans_banktransfer { char *permata; }; +#define midtrans_charge(x, y, z) _Generic((x),\ + struct midtrans_banktransfer *:\ + midtrans_charge_banktransfer(x, y, z)\ + ) + #ifdef __cplusplus extern "C" { #endif void midtrans_init(const char *api_key, const char *cainfo); void midtrans_status(const char *order_id); -void midtrans_charge(enum midtrans_payment type, void *payment, +void midtrans_charge_banktransfer(struct midtrans_banktransfer *banktransfer, struct midtrans_transaction *transaction, char *custom_fields[]); void midtrans_cleanup(); |