summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client.cxx13
-rw-r--r--qicclient.hxx7
2 files changed, 20 insertions, 0 deletions
diff --git a/client.cxx b/client.cxx
index 37875b1..4c54605 100644
--- a/client.cxx
+++ b/client.cxx
@@ -37,6 +37,14 @@ namespace QICClient {
}, nullptr);
}
+ void Client::path(QString const& path)
+ {
+ icclient_path(path.toLatin1().constData(), [](icclient_response* response) {
+ client->emitPath(QString{response->data});
+ icclient_free_response(response);
+ });
+ }
+
void Client::defaultCatalog(QString const& prodGroup)
{
icclient_catalog(prodGroup.toLatin1().constData(), nullptr, [](struct icclient_catalog* catalog) {
@@ -59,6 +67,11 @@ namespace QICClient {
emit gotProduct(product);
}
+ void Client::emitPath(QString const& path)
+ {
+ emit gotPath(path);
+ }
+
void Client::order(QString const& sku, Catalog const& catalog, Ord& order)
{
auto c_order = order.data();
diff --git a/qicclient.hxx b/qicclient.hxx
index 664b566..88f07d8 100644
--- a/qicclient.hxx
+++ b/qicclient.hxx
@@ -48,6 +48,11 @@ namespace QICClient {
*/
void product(QString const& sku);
/*!
+ * \brief For fetching data from a specific path.
+ * \param path The path.
+ */
+ void path(QString const& path);
+ /*!
* \brief For fetching products that belong a specific group.
* \param prodGroup The name of the product group.
*/
@@ -60,10 +65,12 @@ namespace QICClient {
signals:
void gotCatalog(QString const& response);
void gotProduct(QString const& response);
+ void gotPath(QString const& response);
protected:
void emitCatalog(QString const& response);
void emitProduct(QString const& response);
+ void emitPath(QString const& response);
};
}