mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-08 23:26:40 +02:00
Add nativeScriptJob errors
This commit is contained in:
@@ -900,6 +900,14 @@ Tomahawk.NativeScriptJobManager = {
|
|||||||
}
|
}
|
||||||
deferred.resolve(result);
|
deferred.resolve(result);
|
||||||
delete this.deferreds[requestId];
|
delete this.deferreds[requestId];
|
||||||
|
},
|
||||||
|
reportNativeScriptJobError: function(requestId, error) {
|
||||||
|
var deferred = this.deferreds[requestId];
|
||||||
|
if (!deferred) {
|
||||||
|
console.log("Deferred object with the given requestId is not present!");
|
||||||
|
}
|
||||||
|
deferred.reject(error);
|
||||||
|
delete this.deferreds[requestId];
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -187,6 +187,25 @@ JSAccount::reportNativeScriptJobResult( int resultId, const QVariantMap& result
|
|||||||
evaluateJavaScript( eval );
|
evaluateJavaScript( eval );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
JSAccount::reportNativeScriptJobError( int resultId, const QVariantMap& error )
|
||||||
|
{
|
||||||
|
QString eval = QString(
|
||||||
|
"Tomahawk.NativeScriptJobManager.reportNativeScriptJobError("
|
||||||
|
"%1," // requestId
|
||||||
|
"%2" // results
|
||||||
|
");"
|
||||||
|
).arg( resultId )
|
||||||
|
.arg( serializeQVariantMap( error ) );
|
||||||
|
|
||||||
|
// Remove when new scripting api turned out to work reliably
|
||||||
|
tDebug( LOGVERBOSE ) << Q_FUNC_INFO << eval;
|
||||||
|
|
||||||
|
evaluateJavaScript( eval );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
QVariant
|
QVariant
|
||||||
JSAccount::evaluateJavaScriptInternal( const QString& scriptSource )
|
JSAccount::evaluateJavaScriptInternal( const QString& scriptSource )
|
||||||
{
|
{
|
||||||
|
@@ -72,6 +72,7 @@ public:
|
|||||||
static QString serializeQVariantMap(const QVariantMap& map);
|
static QString serializeQVariantMap(const QVariantMap& map);
|
||||||
|
|
||||||
void reportNativeScriptJobResult( int resultId, const QVariantMap& result ) override;
|
void reportNativeScriptJobResult( int resultId, const QVariantMap& result ) override;
|
||||||
|
void reportNativeScriptJobError( int resultId, const QVariantMap& error ) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/**
|
/**
|
||||||
|
@@ -635,8 +635,11 @@ JSResolverHelper::invokeNativeScriptJob( int requestId, const QString& methodNam
|
|||||||
if ( methodName == "httpRequest" ) {
|
if ( methodName == "httpRequest" ) {
|
||||||
nativeAsyncRequest( requestId, params );
|
nativeAsyncRequest( requestId, params );
|
||||||
} else {
|
} else {
|
||||||
// TODO: make promise reject instead
|
QVariantMap error;
|
||||||
Q_ASSERT_X(false, "invokeNativeScriptJob", "NativeScriptJob methodName was not found");
|
error["message"] = "NativeScriptJob methodName was not found";
|
||||||
|
error["name"] = "method_was_not_found";
|
||||||
|
|
||||||
|
m_resolver->d_func()->scriptAccount->reportNativeScriptJobError( requestId, error );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -72,6 +72,7 @@ public:
|
|||||||
void unregisterScriptPlugin( const QString& type, const QString& objectId );
|
void unregisterScriptPlugin( const QString& type, const QString& objectId );
|
||||||
|
|
||||||
virtual void reportNativeScriptJobResult( int resultId, const QVariantMap& result ) = 0;
|
virtual void reportNativeScriptJobResult( int resultId, const QVariantMap& result ) = 0;
|
||||||
|
virtual void reportNativeScriptJobError( int resultId, const QVariantMap& error ) = 0;
|
||||||
|
|
||||||
virtual void scriptPluginFactory( const QString& type, const scriptobject_ptr& object );
|
virtual void scriptPluginFactory( const QString& type, const scriptobject_ptr& object );
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user