2022-01-28 13:33:57 +08:00
|
|
|
import { Roles, Role } from '@logto/schemas';
|
|
|
|
import { sql } from 'slonik';
|
|
|
|
|
|
|
|
import pool from '@/database/pool';
|
|
|
|
import { convertToIdentifiers } from '@/database/utils';
|
|
|
|
|
|
|
|
const { table, fields } = convertToIdentifiers(Roles);
|
|
|
|
|
|
|
|
export const findAllRoles = async () =>
|
|
|
|
pool.any<Role>(sql`
|
|
|
|
select ${sql.join(Object.values(fields), sql`, `)}
|
|
|
|
from ${table}
|
|
|
|
`);
|
|
|
|
|
|
|
|
export const findRolesByRoleNames = async (roleNames: string[]) =>
|
|
|
|
pool.any<Role>(sql`
|
2022-02-28 14:30:27 +08:00
|
|
|
select ${sql.join(Object.values(fields), sql`, `)}
|
2022-01-28 13:33:57 +08:00
|
|
|
from ${table}
|
2022-02-28 14:30:27 +08:00
|
|
|
where ${fields.name} in (${sql.join(roleNames, sql`, `)})
|
2022-01-28 13:33:57 +08:00
|
|
|
`);
|