26. deletePhoto

김종민·2022년 4월 26일
0

insta-backend

목록 보기
25/37

1. deletePhoto.typeDefs.js

import { gql } from 'apollo-server'

export default gql`
  type DeletePhotoResult {
    ok: Boolean!
    error: String
  }
  type Mutation {
    deletePhoto(id: Int!): DeletePhotoResult!
  }
`

2.deletePhoto.resolvers.js

import prisma from '../../client'
import { protectedResolver } from '../../users/users.util'

export default {
  Mutation: {
    deletePhoto: protectedResolver(async (_, { id }, { loggedInUser }) => {
      const photo = await prisma.photo.findUnique({
        where: { id },
        select: { userId: true },
        ///찾은 photo에서 userId만 불러옴.. DB에 부담을 줄이기 위한 방법.
        
      })
      if (!photo) {
        return {
          ok: false,
          error: 'Photo not found',
        }
      } else if (photo.userId !== loggedInUser.id) {
      ////찾은 photo의 userId와 loggedInUser.id가 같이야 지울 수 있게 설정함.
      
        return {
          ok: false,
          error: 'Not authorized',
        }
      } else {
        await prisma.photo.delete({
          where: { id },
        })
        return {
          ok: true,
        }
      }
    }),
  },
}

profile
코딩하는초딩쌤

0개의 댓글