Skip to content

Commit 710ea3e

Browse files
author
Fernando
committed
merge master
1 parent 04a067c commit 710ea3e

File tree

7 files changed

+48
-37
lines changed

7 files changed

+48
-37
lines changed

src/providers/database-migration-contract.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
import { Injectable } from "@angular/core";
22
import { Version } from "./../model/version-model";
3-
import { Observable } from "rxjs/Observable";
4-
import { DatabaseTransaction, GetMapper } from "database-builder";
3+
import { GetMapper, DatabaseObject } from "database-builder";
54
import { DatabaseResettableContract } from "./database-resettable-contract";
5+
import { Observable } from "rxjs";
66

77
@Injectable()
88
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

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ import { DatabaseSettingsFactoryContract } from "..";
22
import { Version } from "./../model/version-model";
33
import { 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(Observable.fromPromise(ddl.drop(value.newable).execute()));
@@ -41,14 +41,14 @@ export class DatabaseMigration extends DatabaseMigrationBase implements Database
4141
return Observable.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
});
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { DatabaseTransaction } from "database-builder";
2-
import { Observable } from "rxjs/Observable";
1+
import { DatabaseObject } from "database-builder";
2+
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

Lines changed: 1 addition & 1 deletion
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/table-mapper.ts

Lines changed: 1 addition & 1 deletion
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

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,21 @@
1-
import { GetMapper } from 'database-builder';
2-
import { Observable } from 'rxjs/Observable';
1+
import { GetMapper, DatabaseObject } from 'database-builder';
32
import { Injectable } from '@angular/core';
4-
import { DatabaseTransaction } from 'database-builder';
5-
import { DatabaseMigrationContract, Version } from '../..';
3+
import { Observable } from 'rxjs';
4+
import { DatabaseResettableContract } from '../../providers/database-resettable-contract';
5+
import { Version } from '../../model/version-model';
6+
import { DatabaseMigrationContract } from '../../providers/database-migration-contract';
67

78
@Injectable()
89
export class DatabaseMigrationService extends DatabaseMigrationContract {
910

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

14+
if (!(window as any)._resetCalled) {
15+
resettable.reset(database);
16+
(window as any)._resetCalled = true;
17+
}
18+
1319
// if (version.oldVersion < 2.0) {
1420
// observablesNested.push(this.migration_v2_0(transation, version, mappers));
1521
// }

src/utils/database-migration-base.ts

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
import * as momentNs from "moment";
33
const moment = momentNs;
4-
import { DatabaseBaseTransaction, DatabaseObject } from "database-builder";
4+
import { DatabaseObject } from "database-builder";
55
import { Observable, Observer } from "rxjs";
66

77
export abstract class DatabaseMigrationBase {
@@ -10,11 +10,11 @@ export abstract class DatabaseMigrationBase {
1010
return new Promise<boolean>((resolve, reject) => {
1111
this.checkTableVersion(database).then(_ => {
1212
this.checkVersion(database, version)
13-
.subscribe(result => {
13+
.subscribe((result: { oldVersion: number; newVersion: number; }) => {
1414
this.migration(database, result)
1515
.then(r => resolve(r))
1616
.catch(er => reject(er));
17-
}, er => reject(er));
17+
}, (er: any) => reject(er));
1818
})
1919
.catch(er => reject(er));
2020
});
@@ -28,7 +28,8 @@ export abstract class DatabaseMigrationBase {
2828
}
2929

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

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

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

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

0 commit comments

Comments
 (0)