import Database, { // DatabaseQueryBuilderContract, QueryClientContract, TransactionClientContract, } from "@ioc:Adonis/Lucid/Database"; import Config from "@ioc:Adonis/Core/Config"; export function getUserRoles( userId: number, trx?: TransactionClientContract ): Promise> { const { userRole } = Config.get("acl.joinTables"); return ((trx || Database) as QueryClientContract | TransactionClientContract) .query() .from("roles") .distinct("roles.slug") .leftJoin(userRole, `${userRole}.role_id`, "roles.id") .where(`${userRole}.user_id`, userId) .then((res) => { return res.map((r) => r.slug); }); }