From f91691a987aaca4a16a2ffe8d4ad3b6c6b8c8059 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, 13 Jun 2021 10:34:53 +0800 Subject: Move basic header outside of package dir --- qicclient.hxx | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 qicclient.hxx (limited to 'qicclient.hxx') diff --git a/qicclient.hxx b/qicclient.hxx new file mode 100644 index 0000000..aa8bca9 --- /dev/null +++ b/qicclient.hxx @@ -0,0 +1,64 @@ +#ifndef QICCLIENT_CLIENT_HXX +#define QICCLIENT_CLIENT_HXX + +#include +#include +#include + +namespace QICClient { + + using std::shared_ptr; + class Catalog; + class Ord; + + class Client : public QObject + { + Q_OBJECT + + public: + /*! + * \brief Constructor. + * \param url Server root URL. + * \param certificate Path to the CA certificate file. + */ + Client(char const* url, char const* certificate = nullptr); + ~Client(); + + /*! + * \brief For fetching products that belong a specific group. + * \param prodGroup The name of the product group. + * \param handler A pointer to a cURL write function callback. + */ + void results(QString const& prodGroup, icclient_handler handler = nullptr); + + /*! + * \brief For fetching data about all active products. + * \param handler A pointer to a cURL write function callback. + */ + void allProducts(icclient_handler handler = nullptr); + + void emitCatalog(icclient_catalog *catalog); + + /*! + * \brief For fetching data about a specific product. + * \param sku The SKU of the item to order. + * \param handler A pointer to a cURL write function callback. + */ + void flyPage(QString const& sku, icclient_handler handler); + + /*! + * \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 order. + */ + void order(QString const& sku, Catalog const& catalog, Ord& order); + + signals: + void gotResults(Catalog* catalog); + void gotFlyPage(shared_ptr product); + }; + +} + +#endif -- cgit v1.2.3