phrictionclient.cpp
No OneTemporary

File Metadata

Created
Sat, Mar 14, 3:20 AM

phrictionclient.cpp

#include "phrictionclient.h"
#include "conduitclient.h"
PhrictionClient::PhrictionClient(const QString& uri, const QString& user, const QString& token, const QString& certificate)
: transport (new ConduitClient(uri, user, token, certificate))
{
}
bool
PhrictionClient::createDocument(QString slug, QString title, QString content, QString description){
//try to create
QJsonObject request{
{"slug", slug}
,{"title", title}
,{"content", content}
,{"description", description}
};
QJsonObject answer= transport->request("phriction.create", request);
QJsonValue error = answer.value("error_code");
if (!error.isUndefined() && error.isNull()){
return true;
}
return false;
}
bool
PhrictionClient::updateDocument(QString slug, QString title, QString content, QString description){
//try to create
QJsonObject request{
{"slug", slug}
,{"title", title}
,{"content", content}
,{"description", description}
};
QJsonObject answer= transport->request("phriction.edit", request);
QJsonValue error = answer.value("error_code");
if (!error.isUndefined() && error.isNull()){
return true;
}
return false;
}
bool PhrictionClient::existsDocument(const QString& slug){
QJsonObject request{
{"slug", slug}
};
QJsonObject answer= transport->request("phriction.info", request);
QJsonValue status = answer.value("result").toObject().value("status");
if (status.toString() == "exists" || status.toString() == "deleted"){
return true;
}
return false;
}
bool
PhrictionClient::publishDocument(QString slug, QString title, QString content, QString description){
if (existsDocument(slug)){
return updateDocument(slug, title, content, description);
}
QStringList slugParts = slug.split('/');
slugParts.removeLast();
QString slugParent;
for (QString part: slugParts){
slugParent += part + "/";
if (! existsDocument(slugParent)){
createDocument(slugParent, part, " ", "");
}
}
return createDocument(slug, title, content, description);
}
PhrictionClient::~PhrictionClient(){
delete transport;
}

Event Timeline