Skip to content

Commit a7c1067

Browse files
committed
v.0.1.0-rc.13
Adicionado tratamento para valores nulos, serem inseridos como NULL e não como string "undefined", e todos os provedores de banco de dados.
1 parent b804be7 commit a7c1067

File tree

5 files changed

+31
-4
lines changed

5 files changed

+31
-4
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "database-builder",
3-
"version": "0.1.0-rc.12",
3+
"version": "0.1.0-rc.13",
44
"description": "Library to assist in creating and maintaining SQL commands.",
55
"main": "./src/index.js",
66
"types": "./src/index.d.ts",

src/core/columns-base-builder.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -94,9 +94,10 @@ export abstract class ColumnsBaseBuilder<
9494
for (const key in mapper.columns) {
9595
if (mapper.columns.hasOwnProperty(key)) {
9696
const column = mapper.columns[key];
97+
const value = Utils.getValue(modelWithValue, column.fieldReference);
9798
this.setColumnValue(
9899
column.column,
99-
Utils.getValue(modelWithValue, column.fieldReference),
100+
value,
100101
column.fieldType,
101102
column.primaryKeyType
102103
);

src/core/columns-values-builder.ts

+5-1
Original file line numberDiff line numberDiff line change
@@ -95,13 +95,17 @@ export abstract class ColumnsValuesBuilder<
9595
const columnName = this.columnFormat(column);
9696
if (columnName !== void 0) {
9797
result.columns.push(columnName);
98-
result.params.push(column.value);
98+
result.params.push(this.isValueNull(column.value) ? null : column.value);
9999
}
100100
}
101101
});
102102
return result;
103103
}
104104

105+
protected isValueNull(value: any): boolean {
106+
return value === void 0;
107+
}
108+
105109
protected allowGenerateKey(): boolean {
106110
return false;
107111
}

src/crud/insert/insert-builder.ts

-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ export class InsertBuilder<T> extends CrudBaseBuilder<T, InsertColumnsBuilder<T>
88

99
constructor(
1010
typeT: new () => T,
11-
// metadata: MetadataTable<T>,
1211
mapperTable: MapperTable,
1312
alias: string = void 0,
1413
protected readonly _modelToSave: T = void 0,

src/test/sqlite.spec.ts

+23
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,29 @@ describe("SQLite", async () => {
8686
expect(itemResult.uf.codeImport).to.equal(ObjectToTest.uf.codeImport);
8787
}
8888
expect(queryResult[0].codeImport).to.equal(ObjectToTest.cidade.codeImport);
89+
90+
const model4 = {
91+
codeImport: 99,
92+
nome: undefined,
93+
uf: ObjectToTest.uf,
94+
subRegiao: ObjectToTest.subRegiao,
95+
} as Cidade;
96+
const insert = crud.insert(Cidade, model4);
97+
// const insertCompile = insert.compile()[0];
98+
// console.log(insertCompile.query);
99+
// console.log(insertCompile.params);
100+
const insertResult4 = await insert.execute();
101+
expect(insertResult4[0].rowsAffected).to.equal(1);
102+
103+
const queryResult4 = await crud.query(Cidade)
104+
.where(where => where.equal(x => x.codeImport, model4.codeImport))
105+
.firstOrDefault();
106+
const queryResultNull = await crud.query(Cidade)
107+
.where(where => where.isNull(x => x.nome))
108+
.toList();
109+
110+
expect(queryResult4.nome).to.equal(null);
111+
expect(queryResultNull.length).to.equal(1);
89112
});
90113

91114
it("ContasAReceber", async () => {

0 commit comments

Comments
 (0)