"use server"; import { executeREST } from "app/_lib/zammad"; import { createLogger } from "@link-stack/logger"; const logger = createLogger('link-users'); export const getAgentsAction = async (groupID: number) => { try { const group = await executeREST({ path: `/api/v1/groups/${groupID}`, }); const { user_ids: groupUserIDs } = group; const path = `/api/v1/users/search?query=role_ids:2&limit=1000`; const users = await executeREST({ path }); const agents = users?.filter((user: any) => groupUserIDs.includes(user.id)) ?? []; const formattedAgents = agents .map((agent: any) => ({ label: `${agent.firstname} ${agent.lastname}`, value: `gid://zammad/User/${agent.id}`, })) .sort((a: any, b: any) => a.label.localeCompare(b.label)); return formattedAgents; } catch (e) { logger.error({ error: e }, "Error occurred"); return []; } }; export const getCustomersAction = async () => { try { const users = await executeREST({ path: "/api/v1/users", }); const customers = users?.filter((user: any) => user.role_ids.includes(3)) ?? []; const formattedCustomers = customers .map((customer: any) => ({ label: customer.login, value: `gid://zammad/User/${customer.id}`, })) .sort((a: any, b: any) => a.label.localeCompare(b.label)); return formattedCustomers; } catch (e) { logger.error({ error: e }, "Error occurred"); return []; } }; export const getUsersAction = async () => { try { const users = await executeREST({ path: "/api/v1/users", }); const formattedUsers = users .map((customer: any) => ({ label: customer.login, value: `gid://zammad/User/${customer.id}`, })) .sort((a: any, b: any) => a.label.localeCompare(b.label)); return formattedUsers; } catch (e) { logger.error({ error: e }, "Error occurred"); return []; } };