티스토리 뷰

안녕하세요 강정호 입니다

 

오늘은 editUser와 seeUser API를 개발해 보겠습니다.

 

seeUser.graphql

type Query {
    seeUser(id: String!): User!
}

 

seeUser.js

import { prisma } from "../../../../generated/prisma-client";

export default {
    Query: {
        seeUser: async (_, args, { request, isAuthenticated }) => {
            const { id } = args;
            return prisma.user({id});
        }

    }
}

 

테스트

id를 사용하여 User 데이터를 정상적으로 조회 확인.

 

editUser.graphql

type Mutation {
    editUser(
        userName: String
        , email: String
        , firstName: String
        , lastName: String
        , bio: String 
        ): User!
}

 

editUser.js

import { prisma } from "../../../../generated/prisma-client";

export default {
    Mutation: {
        editUser: async (_, args, {request, isAuthenticated}) => {
            isAuthenticated(request);
            const { userName
                , email
                , firstName
                , lastName
                , bio } = args;

                const { user } = request;

                return prisma.updateUser(
                    {where: {id: user.id},
                    data: {
                        userName, email, firstName, lastName, bio
                    }
                    });


        }
    }
}

 

테스트

bio를 위와 같이 변경하였다. 변경하지 않는 값들은 그대로 보존된다.

댓글