user_acl_groups.ts (1034B)
1 import { modelBehaviour } from '@/lib/model_helpers' 2 import { UserProfile } from '@/lib/models/user_profile' 3 import { RowDataPacket } from 'mysql2' 4 5 const SQL_GET_USER_ACL_GROUPS = ` 6 SELECT acl_group 7 FROM user_acl_groups 8 WHERE login_id = ? 9 ` 10 11 export const getUserACLGroups = modelBehaviour< 12 [loginId: number], 13 string[] 14 >(async (conn, args) => { 15 const [rows] = await conn.query<RowDataPacket[]>({ 16 sql: SQL_GET_USER_ACL_GROUPS, 17 }, args) 18 19 return rows.map(row => row[0]) 20 }) 21 22 const SQL_GET_ACL_GROUP_USERS = ` 23 SELECT p.login_id, p.nickname, p.bio, p.updated_at 24 FROM user_acl_groups g 25 inner join user_profiles p on g.login_id = p.login_id 26 WHERE acl_group = ? 27 ` 28 29 export const getACLGroupUsers = modelBehaviour< 30 [aclGroup: string], 31 UserProfile[] 32 >(async (conn, args) => { 33 const [rows] = await conn.query<RowDataPacket[]>({ 34 sql: SQL_GET_ACL_GROUP_USERS, 35 }, args) 36 37 return rows.map(row => ({ 38 loginId: row[0], 39 nickname: row[1], 40 bio: row[2], 41 updatedAt: row[3], 42 })) 43 })