@@ -4,7 +4,8 @@ angular.module('predicsis.jsSDK.helpers', []);
4
4
angular
5
5
. module ( 'predicsis.jsSDK' , [ 'predicsis.jsSDK.models' , 'predicsis.jsSDK.helpers' , 'restangular' ] )
6
6
. provider ( 'predicsisAPI' , function ( ) {
7
- var errorHandler = function ( response ) { throw Error ( response ) ; }
7
+ 'use strict' ;
8
+ var errorHandler = function ( response ) { throw Error ( response ) ; } ;
8
9
var baseURL = 'https://api.predicsis.com' ;
9
10
var oauthToken = 'no-token-defined' ;
10
11
@@ -18,13 +19,15 @@ angular
18
19
this . setErrorHandler = function ( handler ) { errorHandler = handler ; } ;
19
20
20
21
this . $get = function ( Restangular ,
21
- Datasets , Dictionaries , Jobs , Modalities , Models , OauthTokens , OauthApplications , PreparationRules , Projects , Reports , UserSettings , Sources , Uploads , Users , Variables ,
22
+ Datasets , Dictionaries , Jobs , Modalities , Models , OauthTokens , OauthApplications ,
23
+ PreparationRules , Projects , Reports , UserSettings , Sources , Uploads , Users , Variables ,
22
24
datasetHelper , jobsHelper , modelHelper , projectsHelper , s3FileHelper ) {
23
25
var self = this ;
24
26
25
27
Restangular . setBaseUrl ( this . getBaseUrl ( ) ) ;
26
28
Restangular . setDefaultHeaders ( { accept : 'application/json' , Authorization : 'Bearer ' + this . getOauthToken ( ) } ) ;
27
29
Restangular . setErrorInterceptor ( function ( response ) { errorHandler ( response ) ; } ) ;
30
+ jobsHelper . setErrorHandler ( function ( err ) { errorHandler ( err ) ; } ) ;
28
31
Restangular . addResponseInterceptor ( function ( data , operation , what , url , response ) {
29
32
//operation is one of 'getList', 'post', 'get', 'patch'
30
33
if ( [ 'getList' , 'post' , 'get' , 'patch' ] . indexOf ( operation ) > - 1 ) {
@@ -2722,7 +2725,7 @@ angular
2722
2725
. service ( 'jobsHelper' , function ( $q , Jobs ) {
2723
2726
'use strict' ;
2724
2727
var self = this ;
2725
-
2728
+ var errorHandler ;
2726
2729
2727
2730
/**
2728
2731
* @ngdoc function
@@ -2818,9 +2821,36 @@ angular
2818
2821
return self . listen ( jobId )
2819
2822
. then ( function ( ) {
2820
2823
return asyncResult ;
2824
+ } )
2825
+ . catch ( function ( err ) {
2826
+ if ( errorHandler ) {
2827
+ errorHandler ( err ) ;
2828
+ }
2829
+ throw err ;
2821
2830
} ) ;
2822
2831
} ) ;
2823
2832
} ;
2833
+
2834
+ /**
2835
+ * @ngdoc function
2836
+ * @methodOf predicsis.jsSDK.helpers.jobsHelper
2837
+ * @name setErrorHandler
2838
+ * @description set error handler (errors occuring in a job)
2839
+ *
2840
+ * Usage example:
2841
+ * <pre>
2842
+ * return jobsHelper
2843
+ * .setErrorHandler(function(error) {
2844
+ * // do something with error
2845
+ * // ...
2846
+ * });
2847
+ * </pre>
2848
+ *
2849
+ * @param {Function } callback called when an error occurs during a Job
2850
+ */
2851
+ self . setErrorHandler = function ( cb ) {
2852
+ errorHandler = cb ;
2853
+ } ;
2824
2854
} ) ;
2825
2855
2826
2856
/**
0 commit comments