From 7f934ce683df5252fa6350dcc15e187b1c7623cf 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: Sun, 25 Sep 2022 10:20:12 +0800 Subject: Rename remaining icclient to interchange --- interchange/admin.h | 39 +++++++++++++++++++++++++ interchange/member.h | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++ interchange/ord.h | 37 +++++++++++++++++++++++ interchange/typedefs.h | 18 ++++++++++++ 4 files changed, 173 insertions(+) create mode 100644 interchange/admin.h create mode 100644 interchange/member.h create mode 100644 interchange/ord.h create mode 100644 interchange/typedefs.h (limited to 'interchange') diff --git a/interchange/admin.h b/interchange/admin.h new file mode 100644 index 0000000..d0e47d7 --- /dev/null +++ b/interchange/admin.h @@ -0,0 +1,39 @@ +#ifndef INTERCHANGE_ADMIN_H +#define INTERCHANGE_ADMIN_H + +#include "typedefs.h" + +enum interchange_admin_group { + INTERCHANGE_ADMIN_GROUP_CONTENT, + INTERCHANGE_ADMIN_GROUP_MERCH, + INTERCHANGE_ADMIN_GROUP_ORDERS +}; + +struct interchange_admin { + char *username; + char *password; + char *name; + bool super; + enum interchange_admin_group group; +}; + +#ifdef __cplusplus +extern "C" { +#endif + +void interchange_admin_login(const char *username, const char *password, void (*handler)(interchange_response *), + void (*callback)(struct interchange_admin *)); +void interchange_admin_new_admin(const char *username, const char *password, const char *name, bool super, + enum interchange_admin_group group, void (*handler)(interchange_response *)); +void interchange_admin_new_item(const char *description, const char *comment, const char *price, + const char *image_path, void (*handler)(interchange_response *)); +void interchange_admin_new_transaction(const struct interchange_ord_order *order, + const struct interchange_member *member, bool new_customer_id, + void (*handler)(interchange_response *)); +void interchange_admin_logout(struct interchange_admin *admin, void (*handler)(interchange_response *)); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/interchange/member.h b/interchange/member.h new file mode 100644 index 0000000..0e9ca91 --- /dev/null +++ b/interchange/member.h @@ -0,0 +1,79 @@ +#ifndef INTERCHANGE_MEMBER_H +#define INTERCHANGE_MEMBER_H + +#include +#include "typedefs.h" + +struct interchange_member_preferences { + bool mv_same_billing; + bool email_copy; +}; + +struct interchange_member { + char *username; + char *usernick; + char *password; + char *expiration; + char *acl; + char *mod_time; + char *s_nickname; + char *company; + char *fname; /*!< Shipping first name */ + char *lname; /*!< Shipping last name */ + char *address1; + char *address2; + char *address3; + char *city; + char *state; + char *zip; + char *country; + char *phone_day; + char *mv_shipmode; + char *b_nickname; + char *b_fname; /*!< Billing first name */ + char *b_lname; /*!< Billing last name */ + char *b_company; + char *b_address1; + char *b_address2; + char *b_address3; + char *b_city; + char *b_state; + char *b_zip; + char *b_country; + char *b_phone; + char *p_nickname; + char *email; + char *fax; + char *phone_night; + char *address_book; + char *accounts; + struct interchange_member_preferences *preferences; + char *carts; + char *owner; + char *file_acl; + char *db_acl; + char *mail_list; + char *credit_limit; + bool inactive; + bool dealer; + char *price_level; +}; + +#ifdef __cplusplus +extern "C" { +#endif + + void interchange_member_newaccount(const char *username, const char *password, const char *verify, + void (*handler)(interchange_response *), void (*callback)(struct interchange_member *)); + void interchange_member_login(const char *username, const char *password, void (*handler)(interchange_response *), + void (*callback)(struct interchange_member *)); + void interchange_member_account(const char *fname, const char *lname, const char *address1, const char *address2, + const char *city, const char *state, const char *zip, const char *email, const char *phone_day); + void interchange_member_changepassword(const char *password_old, const char *password, const char *verify); + void interchange_member_logout(struct interchange_member *member); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/interchange/ord.h b/interchange/ord.h new file mode 100644 index 0000000..c62bcf0 --- /dev/null +++ b/interchange/ord.h @@ -0,0 +1,37 @@ +#ifndef INTERCHANGE_ORD_H +#define INTERCHANGE_ORD_H + +struct interchange_ord_item { + struct interchange_product *product; + unsigned int quantity; +}; + +struct interchange_ord_order { + double subtotal; + double shipping; + double total_cost; + char *profile; + size_t nitems; + struct interchange_ord_item *items[]; +}; + +#ifdef __cplusplus +extern "C" { +#endif + +/*! + * \brief For putting an item to a cart. + * \param sku The SKU of the item to order. + * \param catalog The catalog from which the item is. + * \param order The address of an order instance. + */ +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); +void interchange_ord_free(struct interchange_ord_order *order); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/interchange/typedefs.h b/interchange/typedefs.h new file mode 100644 index 0000000..02a412f --- /dev/null +++ b/interchange/typedefs.h @@ -0,0 +1,18 @@ +#ifndef INTERCHANGE_TYPEDEFS_H +#define INTERCHANGE_TYPEDEFS_H + +#include +#ifdef __EMSCRIPTEN__ +#include +typedef emscripten_fetch_t interchange_response; +#else +#include +typedef struct { + void *userData; + char *data; + size_t numBytes; + CURL *curl; +} interchange_response; +#endif + +#endif -- cgit v1.2.3