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,
}
}
}),
},
}