Skip to content

Commit

Permalink
fix: fix db provider
Browse files Browse the repository at this point in the history
  • Loading branch information
nichenqin committed Jan 24, 2025
1 parent 88a00af commit 9074900
Show file tree
Hide file tree
Showing 8 changed files with 19 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ export class DashboardMutateVisitor extends AbstractQBMutationVisitor implements
.insertInto("undb_dashboard_table_id_mapping")
.values({ dashboard_id: dashboardId, table_id: tableId })
.$if(this.dbProvider.isMysql(), (eb) => eb.ignore())
.$if(this.dbProvider.not.isMysql(), (eb) => eb.onConflict((ob) => ob.doNothing()))
.$if(!this.dbProvider.isMysql(), (eb) => eb.onConflict((ob) => ob.doNothing()))
.compile()
this.addSql(sql)
}
Expand Down
15 changes: 3 additions & 12 deletions packages/persistence/src/db.provider.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { inject, singleton } from "@undb/di"
import { inject, injectable } from "@undb/di"

export const DB_PROVIDER = Symbol.for("DB_PROVIDER")

Expand All @@ -7,29 +7,20 @@ export const injectDbProvider = () => inject(DB_PROVIDER)
export interface IDbProvider {
getDbProvider(): string

get not(): this

isPostgres(): boolean
isMysql(): boolean
isSqlite(): boolean
}

@singleton()
@injectable()
export class DbProviderService implements IDbProvider {
constructor(@inject(DB_PROVIDER) private readonly dbProvider: string) {}

#isNot: boolean = false

get not(): this {
this.#isNot = true
return this
}

getDbProvider(): string {
return this.dbProvider
}
#is(dbProvider: string) {
return this.#isNot ? this.dbProvider !== dbProvider : this.dbProvider === dbProvider
return this.dbProvider === dbProvider
}
isPostgres(): boolean {
return this.#is("postgres")
Expand Down
2 changes: 1 addition & 1 deletion packages/persistence/src/member/invitation.repository.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ export class InvitationRepository implements IInvitationRepository {
role: invitation.role,
}),
)
.$if(this.dbProvider.not.isMysql(), (eb) =>
.$if(!this.dbProvider.isMysql(), (eb) =>
eb.onConflict((oc) =>
oc.columns(["id", "email"]).doUpdateSet({
invited_at: new Date(),
Expand Down
2 changes: 1 addition & 1 deletion packages/persistence/src/member/space-member.repository.ts
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ export class SpaceMemberRepository implements ISpaceMemberRepository {
user_id: json.userId,
})
.$if(this.dbProvider.isMysql(), (eb) => eb.ignore())
.$if(this.dbProvider.not.isMysql(), (eb) => eb.onConflict((c) => c.doNothing()))
.$if(!this.dbProvider.isMysql(), (eb) => eb.onConflict((c) => c.doNothing()))
.execute()
}
}
8 changes: 4 additions & 4 deletions packages/persistence/src/record/record.mutate-visitor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,7 @@ export class RecordMutateVisitor extends AbstractQBMutationVisitor implements IR
}),
)
.$if(this.dbProvider.isMysql(), (eb) => eb.ignore())
.$if(this.dbProvider.not.isMysql(), (eb) => eb.onConflict((bd) => bd.columns(["id"]).doNothing()))
.$if(!this.dbProvider.isMysql(), (eb) => eb.onConflict((bd) => bd.columns(["id"]).doNothing()))
.compile()
this.addSql(insert)

Expand All @@ -231,7 +231,7 @@ export class RecordMutateVisitor extends AbstractQBMutationVisitor implements IR
})),
)
.$if(this.dbProvider.isMysql(), (eb) => eb.ignore())
.$if(this.dbProvider.not.isMysql(), (eb) =>
.$if(!this.dbProvider.isMysql(), (eb) =>
eb.onConflict((bd) => bd.columns(["table_id", "field_id", "record_id", "attachment_id"]).doNothing()),
)
.compile()
Expand Down Expand Up @@ -284,7 +284,7 @@ export class RecordMutateVisitor extends AbstractQBMutationVisitor implements IR
return values.reduce((prev, value) => prev.unionAll(expression(value)), expression(values[0]))
})
.$if(this.dbProvider.isMysql(), (eb) => eb.ignore())
.$if(this.dbProvider.not.isMysql(), (eb) =>
.$if(!this.dbProvider.isMysql(), (eb) =>
eb.onConflict((bd) => bd.columns([fieldId, symmetricFieldId]).doNothing()),
)
.compile()
Expand Down Expand Up @@ -315,7 +315,7 @@ export class RecordMutateVisitor extends AbstractQBMutationVisitor implements IR
})),
)
.$if(this.dbProvider.isMysql(), (eb) => eb.ignore())
.$if(this.dbProvider.not.isMysql(), (eb) =>
.$if(!this.dbProvider.isMysql(), (eb) =>
eb.onConflict((bd) => bd.columns([fieldId, symmetricFieldId]).doNothing()),
)
.compile()
Expand Down
2 changes: 1 addition & 1 deletion packages/persistence/src/share/share.repository.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ export class ShareRepository implements IShareRepository {
.insertInto("undb_share")
.values(entity)
.$if(this.dbProvider.isMysql(), (eb) => eb.onDuplicateKeyUpdate({ enabled: share.enabled }))
.$if(this.dbProvider.not.isMysql(), (eb) =>
.$if(!this.dbProvider.isMysql(), (eb) =>
eb.onConflict((ob) => ob.columns(["target_id", "target_type"]).doUpdateSet({ enabled: share.enabled })),
)
.execute()
Expand Down
10 changes: 5 additions & 5 deletions packages/persistence/src/table/table.mutation-visitor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ export class TableMutationVisitor extends AbstractQBMutationVisitor implements I
subject_id: field.id.value,
})
.$if(this.dbProvider.isMysql(), (eb) => eb.ignore())
.$if(this.dbProvider.not.isMysql(), (eb) => eb.onConflict((ob) => ob.doNothing()))
.$if(!this.dbProvider.isMysql(), (eb) => eb.onConflict((ob) => ob.doNothing()))
.compile()
this.addSql(sql)

Expand All @@ -95,7 +95,7 @@ export class TableMutationVisitor extends AbstractQBMutationVisitor implements I
rollup_table_id: this.table.id.value,
})
.$if(this.dbProvider.isMysql(), (eb) => eb.ignore())
.$if(this.dbProvider.not.isMysql(), (eb) => eb.onConflict((ob) => ob.doNothing()))
.$if(!this.dbProvider.isMysql(), (eb) => eb.onConflict((ob) => ob.doNothing()))
.compile()
this.addSql(sql)
} else if (field.type === "reference") {
Expand All @@ -108,7 +108,7 @@ export class TableMutationVisitor extends AbstractQBMutationVisitor implements I
foreign_table_id: field.foreignTableId,
})
.$if(this.dbProvider.isMysql(), (eb) => eb.ignore())
.$if(this.dbProvider.not.isMysql(), (eb) => eb.onConflict((ob) => ob.doNothing()))
.$if(!this.dbProvider.isMysql(), (eb) => eb.onConflict((ob) => ob.doNothing()))
.compile()

this.addSql(sql)
Expand Down Expand Up @@ -171,7 +171,7 @@ export class TableMutationVisitor extends AbstractQBMutationVisitor implements I
subject_id: views.view.id.value,
})
.$if(this.dbProvider.isMysql(), (eb) => eb.ignore())
.$if(this.dbProvider.not.isMysql(), (eb) => eb.onConflict((ob) => ob.doNothing()))
.$if(!this.dbProvider.isMysql(), (eb) => eb.onConflict((ob) => ob.doNothing()))
.compile()

this.addSql(sql)
Expand Down Expand Up @@ -224,7 +224,7 @@ export class TableMutationVisitor extends AbstractQBMutationVisitor implements I
subject_id: views.form.id,
})
.$if(this.dbProvider.isMysql(), (eb) => eb.ignore())
.$if(this.dbProvider.not.isMysql(), (eb) => eb.onConflict((ob) => ob.doNothing()))
.$if(!this.dbProvider.isMysql(), (eb) => eb.onConflict((ob) => ob.doNothing()))
.compile()

this.addSql(sql)
Expand Down
6 changes: 3 additions & 3 deletions packages/persistence/src/table/table.repository.ts
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ export class TableRepository implements ITableRepository {
.insertInto("undb_table_id_mapping")
.values(mapping)
.$if(this.dbProvider.isMysql(), (eb) => eb.ignore())
.$if(this.dbProvider.not.isMysql(), (eb) => eb.onConflict((ob) => ob.doNothing()))
.$if(!this.dbProvider.isMysql(), (eb) => eb.onConflict((ob) => ob.doNothing()))
.execute()

for (const view of table.views.views) {
Expand All @@ -115,7 +115,7 @@ export class TableRepository implements ITableRepository {
subject_id: view.id.value,
})
.$if(this.dbProvider.isMysql(), (eb) => eb.ignore())
.$if(this.dbProvider.not.isMysql(), (eb) => eb.onConflict((ob) => ob.doNothing()))
.$if(!this.dbProvider.isMysql(), (eb) => eb.onConflict((ob) => ob.doNothing()))
.execute()
}

Expand All @@ -127,7 +127,7 @@ export class TableRepository implements ITableRepository {
subject_id: form.id,
})
.$if(this.dbProvider.isMysql(), (eb) => eb.ignore())
.$if(this.dbProvider.not.isMysql(), (eb) => eb.onConflict((ob) => ob.doNothing()))
.$if(!this.dbProvider.isMysql(), (eb) => eb.onConflict((ob) => ob.doNothing()))
.execute()
}

Expand Down

0 comments on commit 9074900

Please sign in to comment.