createAccount.js
950 Bytes
import { prisma, generateToken, changePhoneNumber } from "../../../utils";
import bcrypt from "bcryptjs";
export default {
Mutation: {
createAccount: async (_, args) => {
const {
username,
password,
password2,
email,
bio,
avatarUrl,
phoneNum,
} = args;
if (password !== password2) {
throw new Error("two password aren't same each other");
}
const encryptPw = await bcrypt.hash(password, 10);
// TODO: Find user's country code and change new phone number value
const newPhoneNumber = await changePhoneNumber(phoneNum, "+82");
const user = await prisma.user.create({
data: {
username,
email,
bio,
avatarUrl,
password: encryptPw,
phoneNum: newPhoneNumber,
},
});
const token = generateToken(user.id);
return { token, user };
},
},
};