@@ -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,25 @@ 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 ) {
31
+ err = {
32
+ data : {
33
+ message : err . message ,
34
+ status : err . status ,
35
+ errors : [ err ]
36
+ } ,
37
+ status : err . status
38
+ } ;
39
+ errorHandler ( err ) ;
40
+ } ) ;
28
41
Restangular . addResponseInterceptor ( function ( data , operation , what , url , response ) {
29
42
//operation is one of 'getList', 'post', 'get', 'patch'
30
43
if ( [ 'getList' , 'post' , 'get' , 'patch' ] . indexOf ( operation ) > - 1 ) {
@@ -2722,7 +2735,7 @@ angular
2722
2735
. service ( 'jobsHelper' , function ( $q , Jobs ) {
2723
2736
'use strict' ;
2724
2737
var self = this ;
2725
-
2738
+ var errorHandler ;
2726
2739
2727
2740
/**
2728
2741
* @ngdoc function
@@ -2818,9 +2831,36 @@ angular
2818
2831
return self . listen ( jobId )
2819
2832
. then ( function ( ) {
2820
2833
return asyncResult ;
2834
+ } )
2835
+ . catch ( function ( err ) {
2836
+ if ( errorHandler ) {
2837
+ errorHandler ( err ) ;
2838
+ }
2839
+ throw err ;
2821
2840
} ) ;
2822
2841
} ) ;
2823
2842
} ;
2843
+
2844
+ /**
2845
+ * @ngdoc function
2846
+ * @methodOf predicsis.jsSDK.helpers.jobsHelper
2847
+ * @name setErrorHandler
2848
+ * @description set error handler (errors occuring in a job)
2849
+ *
2850
+ * Usage example:
2851
+ * <pre>
2852
+ * return jobsHelper
2853
+ * .setErrorHandler(function(error) {
2854
+ * // do something with error
2855
+ * // ...
2856
+ * });
2857
+ * </pre>
2858
+ *
2859
+ * @param {Function } callback called when an error occurs during a Job
2860
+ */
2861
+ self . setErrorHandler = function ( cb ) {
2862
+ errorHandler = cb ;
2863
+ } ;
2824
2864
} ) ;
2825
2865
2826
2866
/**
0 commit comments