Skip to content

Commit 19e6a2a

Browse files
author
Fernando
committed
alteração na chamada do migration para fazer a chamada passando a instancia do Database ao inves da transaction.
1 parent 160aef4 commit 19e6a2a

8 files changed

+40
-36
lines changed

src/providers/database-migration-contract.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Injectable } from "@angular/core";
22
import { Version } from "./../model/version-model";
3-
import { DatabaseTransaction, GetMapper } from "database-builder";
3+
import { GetMapper, DatabaseObject } from "database-builder";
44
import { DatabaseResettableContract } from "./database-resettable-contract";
55
import { Observable } from "rxjs";
66

@@ -9,7 +9,7 @@ export abstract class DatabaseMigrationContract {
99

1010
public abstract to(
1111
version: Version,
12-
transation: DatabaseTransaction,
12+
database: DatabaseObject,
1313
mappers: GetMapper,
1414
resettable: DatabaseResettableContract
1515
): Array<Observable<any>>;

src/providers/database-migration.ts

+15-14
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ import { DatabaseSettingsFactoryContract } from "..";
22
import { Version } from "./../model/version-model";
33
import { forkJoin, from, Observable, Observer } from "rxjs";
44
import { Injectable, Injector, Optional } from "@angular/core";
5-
import { DatabaseTransaction, Ddl } from "database-builder";
5+
import { Ddl, DatabaseObject } from "database-builder";
66
import { DatabaseMigrationContract } from "./database-migration-contract";
77
import { DatabaseMigrationBase } from "../utils/database-migration-base";
88
import { DatabaseResettableContract } from "./database-resettable-contract";
99

1010
@Injectable()
11-
export class DatabaseMigration extends DatabaseMigrationBase implements DatabaseResettableContract{
11+
export class DatabaseMigration extends DatabaseMigrationBase implements DatabaseResettableContract {
1212

1313
private _settings: DatabaseSettingsFactoryContract;
1414

@@ -20,7 +20,7 @@ export class DatabaseMigration extends DatabaseMigrationBase implements Database
2020
this._settings = _injector.get(DatabaseSettingsFactoryContract);
2121
}
2222

23-
public reset(transation: DatabaseTransaction): Observable<any> {
23+
public reset(database: DatabaseObject): Observable<any> {
2424

2525
// tslint:disable-next-line:no-console
2626
console.info("database reset");
@@ -30,7 +30,7 @@ export class DatabaseMigration extends DatabaseMigrationBase implements Database
3030
const mappers = this._settings.mapper(this._injector);
3131

3232
// remove dados offline da versão anterior, pois o formato dos dados foi alterado de uma versão para a outra
33-
const ddl = new Ddl(transation, mappers, true);
33+
const ddl = new Ddl(database, mappers, true);
3434
mappers.forEachMapper((value, key) => {
3535
if (!value.readOnly) {
3636
observablesWait.push(from(ddl.drop(value.newable).execute()));
@@ -41,14 +41,14 @@ export class DatabaseMigration extends DatabaseMigrationBase implements Database
4141
return forkJoin(observablesWait);
4242
}
4343

44-
protected migrationExecute(transation: DatabaseTransaction, version: Version): Promise<boolean> {
44+
protected migrationExecute(database: DatabaseObject, version: Version): Promise<boolean> {
4545
return new Promise<boolean>((resolve, reject) => {
4646

4747
let observablesNested: Array<Observable<any>> = [];
4848
if (this._databaseMigrationContract) {
4949
const toObservables = this._databaseMigrationContract.to(
50-
version,
51-
transation,
50+
version,
51+
database,
5252
this._settings.mapper(this._injector),
5353
this
5454
);
@@ -58,23 +58,24 @@ export class DatabaseMigration extends DatabaseMigrationBase implements Database
5858
}
5959

6060
if (observablesNested.length === 0 && version.oldVersion < 1) {
61-
observablesNested.push(this.reset(transation));
61+
observablesNested.push(this.reset(database));
6262
}
6363

64-
this.callNested(observablesNested, 0).subscribe(result => {
65-
resolve(result);
66-
}, error => reject(error));
64+
this.callNested(observablesNested, 0)
65+
.subscribe((result: boolean | PromiseLike<boolean>) => {
66+
resolve(result);
67+
}, (error: any) => reject(error));
6768
});
6869
}
6970

7071
private callNested(observablesNested: Array<Observable<any>>, nextIndex: number): Observable<boolean> {
7172
return Observable.create((observer: Observer<boolean>) => {
7273
if (observablesNested.length > nextIndex) {
73-
observablesNested[nextIndex].subscribe(result => {
74-
this.callNested(observablesNested, ++nextIndex).subscribe(_ => {
74+
observablesNested[nextIndex].subscribe((result: any) => {
75+
this.callNested(observablesNested, ++nextIndex).subscribe((_: any) => {
7576
observer.next(true);
7677
observer.complete();
77-
}, error => {
78+
}, (error: any) => {
7879
observer.error(error);
7980
observer.complete();
8081
});
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { DatabaseTransaction } from "database-builder";
1+
import { DatabaseObject } from "database-builder";
22
import { Observable } from "rxjs";
33

44
export interface DatabaseResettableContract{
5-
reset(transation: DatabaseTransaction): Observable<any>;
5+
reset(database: DatabaseObject): Observable<any>;
66
}

src/test/factory/database-settings-factory.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { GetMapper } from 'database-builder';
22
import { TableMapper } from './../mapper/table-mapper';
33

44
import { Injector } from '@angular/core';
5-
import { DatabaseSettingsFactoryContract } from '../..';
5+
import { DatabaseSettingsFactoryContract } from '../../utils/database-settings-factory-contract';
66

77
export class DatabaseSettingsFactory extends DatabaseSettingsFactoryContract {
88

src/test/mapper.spec.ts

-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import { Regiao } from './models/regiao';
1010
import { DatabaseMigrationService } from './provider/database-migration-service';
1111
import { DatabaseSettingsFactory } from './factory/database-settings-factory';
1212
import { TableMapper } from './mapper/table-mapper';
13-
import { DatabaseCreatorFake } from './factory/database-creator-fake';
1413
import { DatabaseBrowserProvider } from './factory/database-browser';
1514

1615
describe('Mapper', () => {

src/test/mapper/table-mapper.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { Injectable } from "@angular/core";
2-
import { DatabaseHelperService } from "../..";
32
import { TestClazzRef } from "../models/test-clazz-ref";
43
import { TestClazz } from "../models/test-clazz";
54
import { Cliente } from "../models/cliente";
@@ -10,6 +9,7 @@ import { Regiao } from "../models/regiao";
109
import { Classificacao } from "../models/classificacao";
1110
import { MapperBase } from "database-builder";
1211
import { PrimaryKeyType } from "database-builder/src/core/enums/primary-key-type";
12+
import { DatabaseHelperService } from "../../providers/database-helper-service";
1313

1414
@Injectable()
1515
export class TableMapper extends MapperBase {

src/test/provider/database-migration-service.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
1-
import { GetMapper } from 'database-builder';
1+
import { GetMapper, DatabaseObject } from 'database-builder';
22
import { Injectable } from '@angular/core';
3-
import { DatabaseTransaction } from 'database-builder';
4-
import { DatabaseMigrationContract, Version } from '../..';
53
import { Observable } from 'rxjs';
64
import { DatabaseResettableContract } from '../../providers/database-resettable-contract';
5+
import { Version } from '../../model/version-model';
6+
import { DatabaseMigrationContract } from '../../providers/database-migration-contract';
77

88
@Injectable()
99
export class DatabaseMigrationService extends DatabaseMigrationContract {
1010

11-
public to(version: Version, transation: DatabaseTransaction, mappers: GetMapper, resettable: DatabaseResettableContract): Observable<any>[] {
11+
public to(version: Version, database: DatabaseObject, mappers: GetMapper, resettable: DatabaseResettableContract): Observable<any>[] {
1212
const observablesNested: Observable<any>[] = [];
1313

1414
if (!(window as any)._resetCalled) {
15-
resettable.reset(transation);
15+
resettable.reset(database);
1616
(window as any)._resetCalled = true;
1717
}
1818

src/utils/database-migration-base.ts

+14-10
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import * as momentNs from "moment";
22
const moment = momentNs;
3-
import { DatabaseBaseTransaction, DatabaseObject } from "database-builder";
3+
import { DatabaseObject } from "database-builder";
44
import { Observable, Observer } from "rxjs";
55

66
export abstract class DatabaseMigrationBase {
@@ -9,11 +9,11 @@ export abstract class DatabaseMigrationBase {
99
return new Promise<boolean>((resolve, reject) => {
1010
this.checkTableVersion(database).then(_ => {
1111
this.checkVersion(database, version)
12-
.subscribe(result => {
12+
.subscribe((result: { oldVersion: number; newVersion: number; }) => {
1313
this.migration(database, result)
1414
.then(r => resolve(r))
1515
.catch(er => reject(er));
16-
}, er => reject(er));
16+
}, (er: any) => reject(er));
1717
})
1818
.catch(er => reject(er));
1919
});
@@ -27,7 +27,8 @@ export abstract class DatabaseMigrationBase {
2727
}
2828

2929
protected abstract migrationExecute(
30-
transation: DatabaseBaseTransaction, control: { oldVersion: number, newVersion: number }): Promise<boolean>;
30+
database: DatabaseObject, control: { oldVersion: number, newVersion: number }
31+
): Promise<boolean>;
3132

3233
private checkTableVersion(database: DatabaseObject): Promise<any> {
3334
return new Promise<any>((resolve, reject) => {
@@ -44,7 +45,7 @@ export abstract class DatabaseMigrationBase {
4445

4546
private checkVersion(database: DatabaseObject, newVersion: number): Observable<{ oldVersion: number, newVersion: number }> {
4647
return Observable.create((observer: Observer<any>) => {
47-
this.getVersion(database).subscribe(oldVersion => {
48+
this.getVersion(database).subscribe((oldVersion: number) => {
4849
if (oldVersion > 0) {
4950
if (newVersion > oldVersion) {
5051
// tslint:disable-next-line:no-console
@@ -87,11 +88,14 @@ export abstract class DatabaseMigrationBase {
8788

8889
private migration(database: DatabaseObject, control: { oldVersion: number, newVersion: number }): Promise<boolean> {
8990
return new Promise<boolean>((resolve, reject) => {
90-
database.transaction((transation: DatabaseBaseTransaction) => {
91-
this.migrationExecute(transation, control)
92-
.then(r => resolve(r))
93-
.catch(er => reject(er));
94-
});
91+
this.migrationExecute(database, control)
92+
.then(r => resolve(r))
93+
.catch(er => reject(er));
94+
// database.transaction((transation: DatabaseBaseTransaction) => {
95+
// this.migrationExecute(transation, control)
96+
// .then(r => resolve(r))
97+
// .catch(er => reject(er));
98+
// });
9599
});
96100
}
97101
}

0 commit comments

Comments
 (0)