diff options
-rw-r--r-- | interchange/ord.h | 10 | ||||
-rw-r--r-- | ord.c | 17 |
2 files changed, 23 insertions, 4 deletions
diff --git a/interchange/ord.h b/interchange/ord.h index d605ca7..fda873a 100644 --- a/interchange/ord.h +++ b/interchange/ord.h @@ -17,6 +17,11 @@ struct interchange_ord_order { struct interchange_ord_item *items[]; }; +struct interchange_ord_transaction { + char *order_number; + char *payment_method; +}; + #ifdef __cplusplus extern "C" { #endif @@ -41,7 +46,10 @@ void interchange_ord_checkout(const struct interchange_ord_order *order, const struct interchange_member *member, void (*handler)(interchange_response *)); -void interchange_ord_free(struct interchange_ord_order *order); +void interchange_ord_free_order(struct interchange_ord_order *order); + +void interchange_ord_free_transaction(struct interchange_ord_transaction + *transaction); #ifdef __cplusplus } @@ -83,10 +83,21 @@ void interchange_ord_checkout(const struct interchange_ord_order *order, }}, "%s", "ord/checkout"); } -void interchange_ord_free(struct interchange_ord_order *order) +void interchange_ord_free_order(struct interchange_ord_order *order) { - if (order->profile) - free(order->profile); for (size_t i = 0; i < order->nitems; i++) interchange_free_product(order->items[i]->product); + if (order->profile) + free(order->profile); + free(order); +} + +void interchange_ord_free_transaction(struct interchange_ord_transaction + *transaction) +{ + if (transaction->order_number) + free(transaction->order_number); + if (transaction->payment_method) + free(transaction->payment_method); + free(transaction); } |