diff --git a/libraries/script-engine/src/AssetScriptingInterface.cpp b/libraries/script-engine/src/AssetScriptingInterface.cpp index 80cd30a8b6..f3944f3ea7 100644 --- a/libraries/script-engine/src/AssetScriptingInterface.cpp +++ b/libraries/script-engine/src/AssetScriptingInterface.cpp @@ -31,13 +31,28 @@ void AssetScriptingInterface::uploadData(QString data, QScriptValue callback) { QObject::connect(upload, &AssetUpload::finished, this, [this, callback](AssetUpload* upload, const QString& hash) mutable { if (callback.isFunction()) { QString url = "atp:" + hash; - QScriptValueList args { url }; + QScriptValueList args { url, hash }; callback.call(_engine->currentContext()->thisObject(), args); } + upload->deleteLater(); }); upload->start(); } +void AssetScriptingInterface::setMapping(QString path, QString hash, QScriptValue callback) { + auto setMappingRequest = DependencyManager::get()->createSetMappingRequest(path, hash); + + QObject::connect(setMappingRequest, &SetMappingRequest::finished, this, [this, callback](SetMappingRequest* request) mutable { + if (callback.isFunction()) { + QScriptValueList args { }; + callback.call(_engine->currentContext()->thisObject(), args); + } + request->deleteLater(); + }); + setMappingRequest->start(); +} + + void AssetScriptingInterface::downloadData(QString urlString, QScriptValue callback) { const QString ATP_SCHEME { "atp:" }; diff --git a/libraries/script-engine/src/AssetScriptingInterface.h b/libraries/script-engine/src/AssetScriptingInterface.h index 2c2c596e09..85746ad36e 100644 --- a/libraries/script-engine/src/AssetScriptingInterface.h +++ b/libraries/script-engine/src/AssetScriptingInterface.h @@ -26,6 +26,7 @@ public: Q_INVOKABLE void uploadData(QString data, QScriptValue callback); Q_INVOKABLE void downloadData(QString url, QScriptValue downloadComplete); + Q_INVOKABLE void setMapping(QString path, QString hash, QScriptValue callback); protected: QSet _pendingRequests;