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);  }  |