From b44f0277be93ab755203caf42abf450de8cb8a69 Mon Sep 17 00:00:00 2001 From: Amin Abbasi Date: Sun, 27 Jan 2019 13:48:45 +0330 Subject: [PATCH 1/7] fix some errors crash --- lib/templates/shared/services/core/error.ejs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/templates/shared/services/core/error.ejs b/lib/templates/shared/services/core/error.ejs index fc0ea45c..6230b478 100644 --- a/lib/templates/shared/services/core/error.ejs +++ b/lib/templates/shared/services/core/error.ejs @@ -34,7 +34,11 @@ import { Observable, throwError } from 'rxjs'; export class ErrorHandler { handleError(error): Observable { <% if (framework === 'react') { -%> - return throwError(error.response.data.error || 'Server error'); + if (error.response && error.response.data && error.response.data.error) { + return throwError(error.response.data.error); + } else { + return throwError("Server error"); + } <% } else { -%> return throwError(error.json().error || 'Server error'); <% } %> From 80d9e591a18fc6585898eab4048bb59aa604e972 Mon Sep 17 00:00:00 2001 From: Amin Abbasi Date: Sun, 27 Jan 2019 13:52:20 +0330 Subject: [PATCH 2/7] fix react map/pipe --- lib/templates/shared/services/core/base.ejs | 24 ++++++++++++--------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/lib/templates/shared/services/core/base.ejs b/lib/templates/shared/services/core/base.ejs index 21f2a986..e15caeb3 100644 --- a/lib/templates/shared/services/core/base.ejs +++ b/lib/templates/shared/services/core/base.ejs @@ -174,9 +174,11 @@ let headers = { data : body ? JSON.stringify(body) : undefined } ); - return from(request) - .map((res) => res.data) - .catch((e) => errorHandler.handleError(e)); + return from(request) + .pipe( + map((res) => res.data), + catchError((e) => errorHandler.handleError(e)), + ) <% } %> } } @@ -845,9 +847,11 @@ let headers = { data : body ? JSON.stringify(body) : undefined } ); - return from(request) - .map((res) => res.data) - .catch((e) => errorHandler.handleError(e)); + return from(request) + .pipe( + map((res) => res.data), + catchError((e) => errorHandler.handleError(e)), + ) <% } %> } } @@ -906,7 +910,7 @@ let headers = { LoopBackConfig.getApiVersion(), this.model.getModelDefinition().path ].join('/'), undefined, undefined, { data }, true) - .map((datum) => datum.map((data) => this.model.factory(data))); + .pipe(map((datum) => datum.map((data) => this.model.factory(data)))) } <% } -%> /** @@ -924,7 +928,7 @@ let headers = { LoopBackConfig.getApiVersion(), this.model.getModelDefinition().path ].join('/'), undefined, undefined, { data }, null, customHeaders) - .map((datum) => datum.map((data) => this.model.factory(data))); + .pipe(map((datum) => datum.map((data) => this.model.factory(data)))) } <% if ( isIo === 'enabled' ){ -%> /** @@ -942,7 +946,7 @@ let headers = { LoopBackConfig.getApiVersion(), this.model.getModelDefinition().path ].join('/'), undefined, undefined, { data }, true) - .map((datum) => datum.map((data) => this.model.factory(data))); + .pipe(map((datum) => datum.map((data) => this.model.factory(data)))) } <% } -%> /** @@ -979,7 +983,7 @@ let headers = { LoopBackConfig.getApiVersion(), this.model.getModelDefinition().path ].join('/'), undefined, { filter }, undefined, null, customHeaders) - .map((datum) => datum.map((data) => this.model.factory(data))); + .pipe(map((datum) => datum.map((data) => this.model.factory(data)))) } /** * @method exists From 70bafa493b90c757ce65054ee9d9d4d9941d6027 Mon Sep 17 00:00:00 2001 From: Amin Abbasi Date: Sun, 27 Jan 2019 13:53:53 +0330 Subject: [PATCH 3/7] fix map/pipe in custom service --- lib/templates/shared/services/custom/service.ejs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/templates/shared/services/custom/service.ejs b/lib/templates/shared/services/custom/service.ejs index d5f44f76..804e8d86 100644 --- a/lib/templates/shared/services/custom/service.ejs +++ b/lib/templates/shared/services/custom/service.ejs @@ -70,14 +70,15 @@ export class <%-: modelName %>Api extends BaseLoopBackApi { let result = this.request(_method, _url, _routeParams, _urlParams, _postBody, null, customHeaders)<% if (model.isUser && methodName === 'login') { %> - .map( +.pipe( + map( (response<% if(isTyped) { %>: any<% } %>) => { response.ttl = parseInt(response.ttl); response.rememberMe = rememberMe; this.auth.setToken(response); return response; } - ); + )); return result; <% } else if (methodName.match(/(^create$|upsert|^findBy|^findOne$)/g)) { %>; From b34a06dcc9994614586907699eb0cc2ee84217d2 Mon Sep 17 00:00:00 2001 From: Amin Abbasi Date: Sun, 27 Jan 2019 16:16:14 +0330 Subject: [PATCH 4/7] add map import to services --- lib/react/react-builders.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/react/react-builders.js b/lib/react/react-builders.js index 19164da5..adfb6c4f 100644 --- a/lib/react/react-builders.js +++ b/lib/react/react-builders.js @@ -250,6 +250,8 @@ exports.buildServiceImports = (model, loadAccessToken, isIo, models) => { { module: 'JSONSearchParams', from: '../core/search.params' }, { module: 'ErrorHandler', from: '../core/error.service' }, { module: 'Observable, Subject', from: 'rxjs' }, + { module: 'catchError, map', from: 'rxjs/operators' }, + { module: modelName, from: `../../models/${modelName}` }, ]; if (isIo === 'enabled') { @@ -283,4 +285,4 @@ exports.buildServiceImports = (model, loadAccessToken, isIo, models) => { }); return helpers.buildImports(imports); -} \ No newline at end of file +} From d8bfbb2704ed16777d9a7d2a178ea0345a9c966b Mon Sep 17 00:00:00 2001 From: Amin Abbasi Date: Sun, 27 Jan 2019 16:20:40 +0330 Subject: [PATCH 5/7] "if" service in parent component --- lib/templates/shared/index.ejs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/templates/shared/index.ejs b/lib/templates/shared/index.ejs index 8cae1b87..ad8db7c5 100644 --- a/lib/templates/shared/index.ejs +++ b/lib/templates/shared/index.ejs @@ -43,10 +43,12 @@ export class Component extends ReactComponent { models = {}; constructor(config) { super(); - config.services.forEach((service) => { - if ( typeof this.services === 'object') this.services = {}; - this[service] = new Services[service](); - }); + if(config.services){ + config.services.forEach((service) => { + if ( typeof this.services === 'object') this.services = {}; + this[service] = new Services[service](); + }); + } } } <% } %> From 735b77481da442f70d4a34772bdeaa1b05c41fc3 Mon Sep 17 00:00:00 2001 From: Amin Abbasi Date: Mon, 28 Jan 2019 23:38:16 +0330 Subject: [PATCH 6/7] fix react axios , url_params bug --- lib/templates/shared/services/core/base.ejs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/templates/shared/services/core/base.ejs b/lib/templates/shared/services/core/base.ejs index e15caeb3..c685ae91 100644 --- a/lib/templates/shared/services/core/base.ejs +++ b/lib/templates/shared/services/core/base.ejs @@ -169,8 +169,8 @@ let headers = { headers , method : method, url : `${url}${filter}`, - search : Object.keys(urlParams).length > 0 - ? searchParams.getURLSearchParams() : null, + params : Object.keys(urlParams).length > 0 + ? urlParams : null, data : body ? JSON.stringify(body) : undefined } ); From 622fb7ddb7a8d17b8ed0900fb48703300445ae30 Mon Sep 17 00:00:00 2001 From: Amin Abbasi Date: Fri, 8 Feb 2019 00:23:29 +0330 Subject: [PATCH 7/7] fix creating new class bug... --- lib/templates/shared/services/core/base.ejs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/templates/shared/services/core/base.ejs b/lib/templates/shared/services/core/base.ejs index c685ae91..5cbe0b15 100644 --- a/lib/templates/shared/services/core/base.ejs +++ b/lib/templates/shared/services/core/base.ejs @@ -38,9 +38,10 @@ export abstract class BaseLoopBackApi { this.models = new SDKModels(); this.model = this.models.get(this.getModelName()); this.auth = new LoopBackAuth(); - if (instance) { + /* if (instance) { return instance; } + */ instance = this; <% } %> <% if (framework === 'angular') { -%>