History

export atp GetMappingRequest to js

Seth Alves committed 8 years ago

Commit 3e7d3031 parent 0a542412 files · +40 −2Browse files

Showing the changes to libraries/script-engine/src/AssetScriptingInterface.cpp (1 of 2 files). Show all

Unified · Split

libraries/script-engine/src/AssetScriptingInterface.cpp+23−1
@@ -16,9 +16,11 @@ · 15 unmodified lines
1616 #include <AssetRequest.h>
1717 #include <AssetUpload.h>
1818 #include <MappingRequest.h>
19−#include <NetworkLogging.h>
2019 #include <NodeList.h>
2120
21+#include "ScriptEngineLogging.h"
22+
23+
2224 AssetScriptingInterface::AssetScriptingInterface(QScriptEngine* engine) :
2325 _engine(engine)
2426 {
@@ -53,10 +55,30 @@ void AssetScriptingInterface::setMapping(QString path, QString hash, QScriptValu · 28 unmodified lines
5355 setMappingRequest->start();
5456 }
5557
58+void AssetScriptingInterface::getMapping(QString path, QScriptValue callback) {
59+ auto request = DependencyManager::get<AssetClient>()->createGetMappingRequest(path);
60+ QObject::connect(request, &GetMappingRequest::finished, this, [=](GetMappingRequest* request) mutable {
61+ auto result = request->getError();
62+ if (callback.isFunction()) {
63+ if (result == GetMappingRequest::NotFound) {
64+ QScriptValueList args { "" };
65+ callback.call(_engine->currentContext()->thisObject(), args);
66+ } else if (result == GetMappingRequest::NoError) {
67+ QScriptValueList args { request->getHash() };
68+ callback.call(_engine->currentContext()->thisObject(), args);
69+ } else {
70+ qCDebug(scriptengine) << "error -- " << request->getError() << " -- " << request->getErrorString();
71+ }
72+ request->deleteLater();
73+ }
74+ });
75+ request->start();
76+}
5677
5778 void AssetScriptingInterface::downloadData(QString urlString, QScriptValue callback) {
5879
5980 if (!urlString.startsWith(ATP_SCHEME)) {
81+ qCDebug(scriptengine) << "AssetScriptingInterface::downloadData url must be of form atp:<hash-value>";
6082 return;
6183 }
6284