From 47986845bac62f7558579fa7e7c688e37f8f9865 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=A6=8C=EA=A6=AB=EA=A6=B6=EA=A6=8F=EA=A7=80=EA=A6=A6?= =?UTF-8?q?=EA=A6=BF=EA=A6=A7=EA=A6=AE=EA=A6=91=EA=A6=A9=EA=A6=AD=EA=A7=80?= Date: Tue, 7 Feb 2023 18:41:28 +0800 Subject: Transaction structure and its free-er, so the order free-er has to be renamed, and completed too. --- interchange/ord.h | 10 +++++++++- 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 } diff --git a/ord.c b/ord.c index 615aedb..83b8012 100644 --- a/ord.c +++ b/ord.c @@ -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); } -- cgit v1.2.3