diff --git a/package-lock.json b/package-lock.json index bfd0d35..32e8ef8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1927,9 +1927,9 @@ } }, "@poweredsoft/data": { - "version": "0.0.25", - "resolved": "https://registry.npmjs.org/@poweredsoft/data/-/data-0.0.25.tgz", - "integrity": "sha512-PUab9Q5+0eHTuxQvEyVh+iv3fwdq0lzJXq6SeS9kDIlBDYfFvvn7qiS5KTBZq+JqE+2RnlXF79agYutl4jRviA==", + "version": "0.0.31", + "resolved": "https://registry.npmjs.org/@poweredsoft/data/-/data-0.0.31.tgz", + "integrity": "sha512-J7Vl9Zk0/K3s8+n1PRUAFTDM20hi/zB8SL5ahuJVvHhc6de4fv5f19DzObwcvQeIN4PNMYD/Fhro9i0lECKlMQ==", "requires": { "tslib": "^1.9.0" } diff --git a/package.json b/package.json index 02c691d..f5eacea 100644 --- a/package.json +++ b/package.json @@ -23,17 +23,17 @@ "@angular/platform-browser": "~8.2.4", "@angular/platform-browser-dynamic": "~8.2.4", "@angular/router": "~8.2.4", - "@poweredsoft/data": "0.0.25", + "@poweredsoft/data": "0.0.31", "apollo-angular": "^1.8.0", + "apollo-angular-link-http": "^1.9.0", + "apollo-cache-inmemory": "^1.6.0", + "apollo-client": "^2.6.0", + "apollo-link": "^1.2.11", + "graphql": "^14.5.0", + "graphql-tag": "^2.10.0", "rxjs": "~6.5.3", "tslib": "^1.10.0", - "zone.js": "~0.9.1", - "apollo-angular-link-http": "^1.9.0", - "apollo-link": "^1.2.11", - "apollo-client": "^2.6.0", - "apollo-cache-inmemory": "^1.6.0", - "graphql-tag": "^2.10.0", - "graphql": "^14.5.0" + "zone.js": "~0.9.1" }, "devDependencies": { "@angular-devkit/build-angular": "~0.803.3", diff --git a/projects/poweredsoft/ngx-data-apollo/package.json b/projects/poweredsoft/ngx-data-apollo/package.json index 5015122..f7a8b94 100644 --- a/projects/poweredsoft/ngx-data-apollo/package.json +++ b/projects/poweredsoft/ngx-data-apollo/package.json @@ -2,7 +2,7 @@ "name": "@poweredsoft/ngx-data-apollo", "version": "0.0.8", "peerDependencies": { - "@poweredsoft/data": "^0.0.26", + "@poweredsoft/data": "^0.0.31", "@angular/common": "^8.2.4", "@angular/core": "^8.2.4", "apollo-angular-link-http": "^1.9.0", diff --git a/projects/poweredsoft/ngx-data/package.json b/projects/poweredsoft/ngx-data/package.json index ad067e1..545fcb0 100644 --- a/projects/poweredsoft/ngx-data/package.json +++ b/projects/poweredsoft/ngx-data/package.json @@ -4,7 +4,7 @@ "peerDependencies": { "@angular/common": "^8.2.4", "@angular/core": "^8.2.4", - "@poweredsoft/data": "^0.0.26", + "@poweredsoft/data": "^0.0.31", "rxjs": "^6.5.3" } } \ No newline at end of file diff --git a/projects/poweredsoft/ngx-data/src/lib/HttpDataSourceBuilder.ts b/projects/poweredsoft/ngx-data/src/lib/HttpDataSourceBuilder.ts index b0ca52a..aee38f7 100644 --- a/projects/poweredsoft/ngx-data/src/lib/HttpDataSourceBuilder.ts +++ b/projects/poweredsoft/ngx-data/src/lib/HttpDataSourceBuilder.ts @@ -12,7 +12,6 @@ export class HttpDataSourceOptionsBuilder { private _keyResolver: (model: TModel) => TKey; private _defaultCriteria: IQueryCriteria; private _query: IDataSourceQueryAdapterOptions; - private _manageNotificationMessage: boolean = false; constructor(private http: HttpClient) { @@ -22,17 +21,11 @@ export class HttpDataSourceOptionsBuilder { let ret: IDataSourceOptions = { resolveIdField: this._keyResolver, defaultCriteria: this._defaultCriteria, - manageNotificationMessage: this._manageNotificationMessage, transport: this.createTransport() }; return ret; } - manageNotificationMessage(shouldManage: boolean) { - this._manageNotificationMessage = shouldManage; - return this; - } - createDataSource() : IDataSource{ return new DataSource(this.createOptions()); } @@ -147,9 +140,15 @@ export class HttpDataSourceOptionsBuilder { return this; } - public addCommandByUrl(name: string, url: string, resolveCommandModel?: (event: IResolveCommandModelEvent) => Observable) { + public addCommandByUrl(name: string, url: string, resolveCommandModel?: (event: IResolveCommandModelEvent) => Observable, beforeCommand?: (command: TCommand) => Observable) { const handleWrapper = command => { - return this.http.post(url, command).pipe(catchError(this._handleErrorPipe)); + const finalBeforeCommand = beforeCommand || (_ => of(command)); + return finalBeforeCommand(command) + .pipe( + switchMap(finalCommand => { + return this.http.post(url, finalCommand).pipe(catchError(this._handleErrorPipe)); + }) + ); }; this._commands[name] = > { diff --git a/projects/poweredsoft/ngx-data/src/lib/ngx-data.service.ts b/projects/poweredsoft/ngx-data/src/lib/ngx-data.service.ts index aa946b6..835a87f 100644 --- a/projects/poweredsoft/ngx-data/src/lib/ngx-data.service.ts +++ b/projects/poweredsoft/ngx-data/src/lib/ngx-data.service.ts @@ -62,7 +62,6 @@ export class GenericRestDataSourceService const dataSourceOptions: IDataSourceOptions = { defaultCriteria: defaultCriteria, resolveIdField: keyResolver, - manageNotificationMessage: manageNotificationMessage, transport: dataSourceTransportOptions };