티스토리 뷰

안녕하세요 강정호입니다

 

오늘은 requestSecret Resolver에 대해서 만들어 보겠습니다.

 

파일구조

 

 

 

 

requestSecret.graphql

 

 

requestSecret.js

// utils.js 파일에서 generateSecret 함수를 import 한다
import { generateSecret } from "../../../utils";
import { prisma } from "../../../../generated/prisma-client";

export default {

    /* 작업유형이 Mutation(생성, 업데이트, 삭제) */
    Mutation: {
        // requestSecret : requestSecret.graphql에서 정의한 함수명
        requestSecret: async(_, args) => {

            // 매개변수값 email을 받는다
            const { email } = args;

            // utils.js의 generateSecret 함수 호출. 랜덤 단어 결과 반환
            const loginSecret = generateSecret();

            try{
                // 입력한 이메일에 대해서 User의 loginSecret 값을 업데이트 친다
                await prisma.updateUser({data: {loginSecret}, where: {email}});
                return true;
            }catch(error){
                console.log(error);
                return false;
            }
        
        }
    }

}

 

utils.js

// words 파일 import
import { adjectives, nouns } from "./words";

// generateSecret 함수 정의
export const generateSecret = () => {

  // 랜덤으로 형용사와 명사를 조합하여 반환
  const randomNumber = Math.floor(Math.random() * adjectives.length);
  return `${adjectives[randomNumber]} ${nouns[randomNumber]}`;
};

 

결과

위와 같이 랜덤 단어가 생성되고 이게 User의 loginSecret 값으로 업데이트 된다

댓글