diff options
Diffstat (limited to 'qicclient.hxx')
-rw-r--r-- | qicclient.hxx | 64 |
1 files changed, 64 insertions, 0 deletions
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 <QObject> +#include <qicclient/catalog.hxx> +#include <icclient.h> + +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> product); + }; + +} + +#endif |