Feat: Default SAML/LDAP organization slug

This commit is contained in:
Daniel Hougaard
2024-06-20 18:17:23 +02:00
parent aa6cca738e
commit 30b8d59796

View File

@@ -1,7 +1,30 @@
import { TDbClient } from "@app/db";
import { TableName } from "@app/db/schemas";
import { TableName, TSuperAdmin } from "@app/db/schemas";
import { ormify } from "@app/lib/knex";
export type TSuperAdminDALFactory = ReturnType<typeof superAdminDALFactory>;
export const superAdminDALFactory = (db: TDbClient) => ormify(db, TableName.SuperAdmin, {});
export const superAdminDALFactory = (db: TDbClient) => {
const orm = ormify(db, TableName.SuperAdmin);
const findById = async (id: string) => {
const config = await db(TableName.SuperAdmin)
.where(`${TableName.SuperAdmin}.id`, id)
.leftJoin(TableName.Organization, `${TableName.SuperAdmin}.defaultOrgId`, `${TableName.Organization}.id`)
.select(
db.ref("*").withSchema(TableName.SuperAdmin) as unknown as keyof TSuperAdmin,
db.ref("slug").withSchema(TableName.Organization).as("defaultOrgSlug")
)
.first();
return {
defaultOrgSlug: config?.defaultOrgSlug || null,
...config
} as TSuperAdmin & { defaultOrgSlug: string | null };
};
return {
...orm,
findById
};
};