query 를 구현하고 mutaions 수정 삭제 추가 등등 데이터조작을 구현
보통 mutaions 라는 명세에 데이터를 추가하는 로직을 작성함
typeDef
deleteEquipment(id: String): Equipment
insertEquipment(id: String, used_by: String, count: Int, new_or_used: String):Equipment
editEquipment(id: String, used_by: String, count: Int, new_or_used: String): Equipment
deleteEquipment 에서 id를 받아서 Equipment 삭제된 객체를 반환
resolver
Mutation: {
deleteEquipment: (parent, args, context, info) => { // args에서 ID를 받음
const deleted = database.equipments
.filter((equipment) => {
return equipment.id === args.id
})[0]
// 삭제한 id와 같은 id를 찾아서 해당 객체를 deleted에 저장
database.equipments = database.equipments
.filter((equipment) => {
return equipment.id !== args.id
})
// 삭제id가 포함되지 않은 equipment만 database.equipment에 저장
return deleted // 삭제된 객체 반환
},
args는 각값들을 객체로 받아온다
deleted 변수에는 삭제된 객체가 저장이 된다
database에 filter 내장함수로 args.id 와 일치하지 않는것들을 반환하여 저장한다
typeDef
insertEquipment(id: String, used_by: String, count: Int, new_or_used: String):Equipment
추가할 값들을 파라미터로 받는다.
resolver
insertEquipment: (parent, args, context, info) => {
database.equipments.push(args);
return args
},
args 값을 배열에 추가해주면 된다.
typeDef
editEquipment(id: String, used_by: String, count: Int, new_or_used: String): Equipment
editEquipment: (parent, args, context, info) => {
return database.equipments.filter((equipment)=>{
return equipment.id === args.id
}).map((equipment)=>{
Object.assign(equipment, args)
return equipment
})
}