@kazion/create-app
Version:
A cli tool to help you get started with graphql and rest api's with typescript
47 lines (42 loc) • 1.07 kB
text/typescript
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<Promise<User | null>> = async (
__,
_,
ctx,
) => {
return ctx.user;
};
export const userHandler: ResolverHandler<Promise<User | null>> = async (
_,
args: Args<{}, ID>,
{ prisma },
) => {
const user = await UserService.getUserById(prisma, args?.id as ID);
return user;
};
export const updateUserHandler: ResolverHandler<Promise<OK>> = async (
_: any,
args: Partial<Args<User, ID>>,
{ prisma },
) => {
try {
await UserService.updateUser(prisma, args.id!, args.input!);
return { ok: true };
} catch (error) {
throw error;
}
};
export const inviteUserHandler: ResolverHandler<Promise<OK>> = async (
_: any,
args: Partial<Args<User, ID>>,
) => {
try {
pubsub.publish('USER_INVITE', { userInvite: args.input });
return { ok: true };
} catch (error) {
throw error;
}
};