createAccount.js 647 Bytes
import { prisma } from "../../../utils";
import bcrypt from "bcryptjs";
import jwt from "jsonwebtoken";

export default {
  Mutation: {
    createAccount: async (_, args) => {
      const { name, password, email, bio = "", avatarUrl = "" } = args;
      const encryptPw = await bcrypt.hash(password, 10);
      const user = await prisma.user.create({
        data: {
          name,
          email,
          bio,
          avatarUrl,
          password: encryptPw,
        },
      });
      const token = jwt.sign(
        {
          id: user.id,
        },
        process.env.JWT_SECRET
      );
      return { token, user };
    },
  },
};