import { User } from '@prisma/client'; import { Args, ID, OK, ResolverHandler } from '~/types'; import { UserService } from '~/modules/users/user.service'; import { pubsub } from '~/lib/pubsub'; export const meHandler: ResolverHandler> = async ( __, _, ctx, ) => { return ctx.user; }; export const userHandler: ResolverHandler> = async ( _, args: Args<{}, ID>, { prisma }, ) => { const user = await UserService.getUserById(prisma, args?.id as ID); return user; }; export const updateUserHandler: ResolverHandler> = async ( _: any, args: Partial>, { prisma }, ) => { try { await UserService.updateUser(prisma, args.id!, args.input!); return { ok: true }; } catch (error) { throw error; } }; export const inviteUserHandler: ResolverHandler> = async ( _: any, args: Partial>, ) => { try { pubsub.publish('USER_INVITE', { userInvite: args.input }); return { ok: true }; } catch (error) { throw error; } };