From f9ff1d914a1a2075c41f56fdb063e5ffe9f846c2 Mon Sep 17 00:00:00 2001 From: Santi Albo Date: Tue, 3 Sep 2013 17:05:42 +0100 Subject: [PATCH 1/3] Fix Response type --- restangular/restangular.d.ts | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/restangular/restangular.d.ts b/restangular/restangular.d.ts index 910eb23d7..e633d8ac2 100644 --- a/restangular/restangular.d.ts +++ b/restangular/restangular.d.ts @@ -56,11 +56,11 @@ interface RestangularProvider { addElementTransformer(route: string, transformer: Function): void; addElementTransformer(route: string, isCollection: boolean, transformer: Function): void; setOnElemRestangularized(callback: (elem: any, isCollection: boolean, what: string, restangular: Restangular) => any): void; - setResponseInterceptor(responseInterceptor: (data: any, operation: string, what: string, url: string, response: XMLHttpRequest, deferred: ng.IDeferred) => any): void; - setResponseExtractor(responseInterceptor: (data: any, operation: string, what: string, url: string, response: XMLHttpRequest, deferred: ng.IDeferred) => any): void; + setResponseInterceptor(responseInterceptor: (data: any, operation: string, what: string, url: string, response: RestangularResponse, deferred: ng.IDeferred) => any): void; + setResponseExtractor(responseInterceptor: (data: any, operation: string, what: string, url: string, response: RestangularResponse, deferred: ng.IDeferred) => any): void; setRequestInterceptor(requestInterceptor: (element: any, operation: string, what: string, url: string) => any); setFullRequestInterceptor(fullRequestInterceptor: (element: any, operation: string, what: string, url: string, headers: any, params: any) => {element: any; headers: any; params: any}); - setErrorInterceptor(errorInterceptor: (response: XMLHttpRequest) => any): void; + setErrorInterceptor(errorInterceptor: (response: RestangularResponse) => any): void; setRestangularFields(fields: {[fieldName: string]: string}): void; setMethodOverriders(overriders: string[]): void; setDefaultRequestParams(params: any): void; @@ -71,5 +71,15 @@ interface RestangularProvider { setUseCannonicalId(useCannonicalId: boolean): void; } +interface RestangularResponse { + status: number; + data: any; + config: { + method: string; + url: string; + params: any; + } +} + declare var Restangular: Restangular; declare var RestangularProvider: RestangularProvider; From ee99d701b54a27e9169f4f0999a9f8ac555d64f9 Mon Sep 17 00:00:00 2001 From: Santi Albo Date: Tue, 3 Sep 2013 17:24:42 +0100 Subject: [PATCH 2/3] Add tests for setErrorInterceptor --- restangular/restangular-tests.ts | 39 ++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/restangular/restangular-tests.ts b/restangular/restangular-tests.ts index fc79cad5b..76a0ffd64 100644 --- a/restangular/restangular-tests.ts +++ b/restangular/restangular-tests.ts @@ -79,27 +79,32 @@ function test_basic() { } function test_config() { - RestangularProvider.setBaseUrl('/api/v1'); - RestangularProvider.setExtraFields(['name']); - RestangularProvider.setResponseExtractor(function (response, operation) { - return response.data; - }); + var myRestangular = Restangular.withConfig((configurer: RestangularProvider) => { + configurer.setBaseUrl('/api/v1'); + configurer.setExtraFields(['name']); - RestangularProvider.setDefaultHttpFields({ cache: true }); - RestangularProvider.setMethodOverriders(["put", "patch"]); + configurer.setErrorInterceptor(function (response) { + console.error('' + response.status + ' ' + response.data); + }); + configurer.setResponseExtractor(function (response, operation) { + return response.data; + }); + configurer.setDefaultHttpFields({ cache: true }); + configurer.setMethodOverriders(["put", "patch"]); - RestangularProvider.setRestangularFields({ - id: "_id", - route: "restangularRoute" - }); + configurer.setRestangularFields({ + id: "_id", + route: "restangularRoute" + }); - RestangularProvider.setRequestSuffix('.json'); + configurer.setRequestSuffix('.json'); - RestangularProvider.setRequestInterceptor(function (element, operation, route, url) { - }); + configurer.setRequestInterceptor(function (element, operation, route, url) { + }); - RestangularProvider.addElementTransformer('accounts', false, function (elem) { - elem.accountName = 'Changed'; - return elem; + configurer.addElementTransformer('accounts', false, function (elem) { + elem.accountName = 'Changed'; + return elem; + }); }); } From 59b2a24150173115355e9f21ce43effac25ec325 Mon Sep 17 00:00:00 2001 From: Santi Albo Date: Tue, 3 Sep 2013 23:08:47 +0100 Subject: [PATCH 3/3] Add previous tests --- restangular/restangular-tests.ts | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/restangular/restangular-tests.ts b/restangular/restangular-tests.ts index 76a0ffd64..1bb4b01ee 100644 --- a/restangular/restangular-tests.ts +++ b/restangular/restangular-tests.ts @@ -79,6 +79,34 @@ function test_basic() { } function test_config() { + RestangularProvider.setBaseUrl('/api/v1'); + RestangularProvider.setExtraFields(['name']); + RestangularProvider.setResponseExtractor(function (response, operation) { + return response.data; + }); + + RestangularProvider.setDefaultHttpFields({ cache: true }); + RestangularProvider.setMethodOverriders(["put", "patch"]); + + RestangularProvider.setErrorInterceptor(function (response) { + console.error('' + response.status + ' ' + response.data); + }); + + RestangularProvider.setRestangularFields({ + id: "_id", + route: "restangularRoute" + }); + + RestangularProvider.setRequestSuffix('.json'); + + RestangularProvider.setRequestInterceptor(function (element, operation, route, url) { + }); + + RestangularProvider.addElementTransformer('accounts', false, function (elem) { + elem.accountName = 'Changed'; + return elem; + }); + var myRestangular = Restangular.withConfig((configurer: RestangularProvider) => { configurer.setBaseUrl('/api/v1'); configurer.setExtraFields(['name']);