clean up and view modifier
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
parent
d763d2a35e
commit
711d2d2c7a
3 changed files with 35 additions and 21 deletions
11
src/db.ts
11
src/db.ts
|
@ -112,13 +112,14 @@ export class Table {
|
|||
return handler.builders.escapeID(this.dbLangTableName);
|
||||
}
|
||||
addAttribute(name: string, type: Datatype, ops: attributeSettings = {}, noErrorOnNameConflict = false) {
|
||||
name = name.toLowerCase();
|
||||
if (this.dbLangTableAttributes[name] != null) throw new Error("You are tring to create an Attribute twise!");
|
||||
let attr = new Attribute(name, this, type, ops);
|
||||
this.dbLangTableAttributes[name] = attr;
|
||||
if (["serialize", "toString", "addAttribute", "dbLangTableName", "dbLangTableAttributes", "dbLangDatabaseInstance", "addConstraint", "addAttributes"].includes(name)) {
|
||||
let lowName = name.toLowerCase();
|
||||
if (this.dbLangTableAttributes[lowName] != null) throw new Error("You are tring to create an Attribute twise!");
|
||||
let attr = new Attribute(lowName, this, type, ops);
|
||||
this.dbLangTableAttributes[lowName] = attr;
|
||||
if (["serialize", "toString", "addAttribute", "dbLangTableName", "dbLangTableAttributes", "dbLangDatabaseInstance", "addConstraint", "addAttributes"].includes(lowName)) {
|
||||
if (!noErrorOnNameConflict) throw new Error("You cannot name Attribute like Methode of this Table!");
|
||||
} else {
|
||||
this[lowName] = attr;
|
||||
this[name] = attr;
|
||||
}
|
||||
return attr;
|
||||
|
|
|
@ -411,21 +411,6 @@ export class Handler {
|
|||
qb.addCode(")");
|
||||
return qb;
|
||||
},
|
||||
/*// add constraints
|
||||
appPrimaryKeys: (handler: Handler, table: Table): QueryBuilder => new QueryBuilder(),
|
||||
appForeignKeys: (handler: Handler, table: Table): QueryBuilder => new QueryBuilder(),
|
||||
addUniqueKeys: (handler: Handler, table: Table): QueryBuilder => new QueryBuilder(),
|
||||
addChecks: (handler: Handler, table: Table): QueryBuilder => new QueryBuilder(),
|
||||
//should drop all keys to be able to recreate them
|
||||
dropPrimaryKeys: (handler: Handler, table: Table): QueryBuilder => new QueryBuilder(),
|
||||
dropForeignKeys: (handler: Handler, table: Table): QueryBuilder => new QueryBuilder(),
|
||||
dropUniqueKeys: (handler: Handler, table: Table): QueryBuilder => new QueryBuilder(),
|
||||
dropChecks: (handler: Handler, table: Table): QueryBuilder => new QueryBuilder(),
|
||||
// check constraints
|
||||
listPrimaryKeys: (handler: Handler, table: Table): QueryBuilder => new QueryBuilder(),
|
||||
listForeignKeys: (handler: Handler, table: Table): QueryBuilder => new QueryBuilder(),
|
||||
listUniqueKeys: (handler: Handler, table: Table): QueryBuilder => new QueryBuilder(),
|
||||
listChecks: (handler: Handler, table: Table): QueryBuilder => new QueryBuilder(),*/
|
||||
}
|
||||
|
||||
builders = {
|
||||
|
@ -499,6 +484,8 @@ export class Handler {
|
|||
ge: joinArg(">"),
|
||||
plus: joinArg("+"),
|
||||
minus: joinArg("-"),
|
||||
mult: joinArg("*"),
|
||||
divide: joinArg("-/"),
|
||||
not: (handler: Handler, a: allModifierInput[]): QueryBuilder => {
|
||||
let e = a[0];
|
||||
if (e instanceof Attribute) return new QueryBuilder([{ data: "not (" + e.toString(handler) + ")" }])
|
||||
|
@ -513,7 +500,28 @@ export class Handler {
|
|||
{ data: "not(" },
|
||||
{ inject: true, data: e },
|
||||
{ data: ")" }
|
||||
])
|
||||
]);
|
||||
},
|
||||
like: (handler: Handler, a: allModifierInput[]): QueryBuilder => {
|
||||
const builder = new QueryBuilder();
|
||||
if (a[0] instanceof Attribute) builder.addCode(a[0].toString());
|
||||
else if (a[0] instanceof Modifier || a[0] instanceof selectQuery || a[0] instanceof Aggregation) {
|
||||
const builder = new QueryBuilder();
|
||||
builder.append(a[0].serialize(handler));
|
||||
return builder;
|
||||
}else{
|
||||
builder.addInjection(a[0]);
|
||||
}
|
||||
builder.addCode(" LIKE ");
|
||||
if (a[1] instanceof Attribute) builder.addCode(a[1].toString());
|
||||
else if (a[1] instanceof Modifier || a[1] instanceof selectQuery || a[1] instanceof Aggregation) {
|
||||
const builder = new QueryBuilder();
|
||||
builder.append(a[1].serialize(handler));
|
||||
return builder;
|
||||
}else{
|
||||
builder.addInjection(a[1]);
|
||||
}
|
||||
return builder;
|
||||
}
|
||||
}
|
||||
datatypes = {
|
||||
|
|
|
@ -13,6 +13,11 @@ export const leq = (...args: (allModifierInput)[]) => new BooleanModifier("leq",
|
|||
export const le = (...args: (allModifierInput)[]) => new BooleanModifier("le", args);
|
||||
export const plus = (...args: (allModifierInput)[]) => new NumberModifier("plus", args);
|
||||
export const minus = (...args: (allModifierInput)[]) => new NumberModifier("minus", args);
|
||||
export const mult = (...args: (allModifierInput)[]) => new NumberModifier("mult", args);
|
||||
export const divide = (...args: (allModifierInput)[]) => new NumberModifier("divide", args);
|
||||
|
||||
export const not = (...args: (allModifierInput)[]) => new BooleanModifier("not", args);
|
||||
export const like = (a: allModifierInput, b: allModifierInput) => new BooleanModifier("like", [a, b]);
|
||||
|
||||
//aggregations
|
||||
|
||||
|
|
Loading…
Reference in a new issue