diff options
| author | ꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id> | 2021-06-13 08:50:40 +0800 |
|---|---|---|
| committer | ꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id> | 2021-06-13 08:50:40 +0800 |
| commit | 2782dce6f11f31c54a103c2d01fb55f07a9f0c5b (patch) | |
| tree | d6abd21124572a4ac25640b0150c5e281ff239a2 /icclient.h | |
| parent | daf858c02db1a5a12151d142ce55dfe9fbb2b715 (diff) | |
Move icclient/client.h to icclient.h
Diffstat (limited to 'icclient.h')
| -rw-r--r-- | icclient.h | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/icclient.h b/icclient.h new file mode 100644 index 0000000..bcf8170 --- /dev/null +++ b/icclient.h @@ -0,0 +1,65 @@ +#ifndef ICCLIENT_CLIENT_H +#define ICCLIENT_CLIENT_H + +#define icclient_allproducts(callback, handler) icclient_results("All-Products", callback, handler) + +struct icclient_catalog { + size_t length; + struct icclient_product { + char *sku; + char *description; + char *comment; + char *thumb; + char *image; + double price; + char *prod_group; + double weight; + char *author; + struct icclient_product_crosssell { + size_t length; + char *skus[]; + } *crosssell; + } *products[]; +}; + +#ifdef __cplusplus +extern "C" { +#endif + +/*! + * \brief A function that needs to be run first. + * \param url Server root URL. + * \param certificate Path to the CA certificate file. + * \return True if the initialisation works, false otherwise. + */ +void icclient_init(const char *url, const char *certificate); + +/*! + * \brief For fetching data about products that belong a specific group. + * \param prod_group The name of the product group. + * \param callback A pointer to the function that needs to be called after the catalog is ready. + * \param handler A pointer to the function when a custom handler is needed to arrange the data into the catalog. + */ +void icclient_results(const char *prod_group, void (*callback)(struct icclient_catalog *), icclient_handler handler); + +/*! + * \brief For fetching data about a specific product. + * \param sku The SKU of the product. + * \param handler A pointer to a cURL write function callback. + * \param productptr A pointer to pointer to the product to store the data. + */ +void icclient_flypage(const char *sku, icclient_handler handler, struct icclient_product **productptr); + +void icclient_page(const char *path, icclient_handler handler, void **dataptr); + +void icclient_free_product(struct icclient_product *product); + +void icclient_free_catalog(struct icclient_catalog *catalog); + +void icclient_cleanup(); + +#ifdef __cplusplus +} +#endif + +#endif |