diff options
author | ꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id> | 2023-02-07 15:18:40 +0800 |
---|---|---|
committer | ꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id> | 2023-02-07 15:18:40 +0800 |
commit | 0bc5fe5cb5b85377c97fc84959d3764c6e8be703 (patch) | |
tree | c3b279c7d1bfd15bc4cd2d8b55fd24924b47b206 | |
parent | bbda409c41098831ea48689145a44b8a6eaf6b20 (diff) |
Interface to handler when checking out
-rw-r--r-- | interchange/ord.h | 13 | ||||
-rw-r--r-- | ord.c | 6 |
2 files changed, 16 insertions, 3 deletions
diff --git a/interchange/ord.h b/interchange/ord.h index c62bcf0..22bf81e 100644 --- a/interchange/ord.h +++ b/interchange/ord.h @@ -27,7 +27,18 @@ extern "C" { */ void interchange_ord_order(const char *sku, const struct interchange_catalog *catalog, struct interchange_ord_order **order); -void interchange_ord_checkout(const struct interchange_ord_order *order, const struct interchange_member *member); + +/*! + * \brief For checking out items in the cart. + * \param order The order to be checked out. + * \param member The member checking out. + * \param handler A pointer to the function when a custom handler is needed to + * arrange the data into the product. +*/ +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); #ifdef __cplusplus @@ -61,9 +61,11 @@ void interchange_ord_order(const char *sku, const struct interchange_catalog *ca request(NULL, NULL, NULL, "%s%s", "order?mv_arg=", sku); } -void interchange_ord_checkout(const struct interchange_ord_order *order, const struct interchange_member *member) +void interchange_ord_checkout(const struct interchange_ord_order *order, + const struct interchange_member *member, + void (*handler)(interchange_response *)) { - request(NULL, NULL, &(struct body){ 14, { + request(handler, NULL, &(struct body){ 14, { { "mv_todo", "submit" }, { "mv_action", "refresh" }, { "mv_order_profile", order->profile }, |