
type Query {
teams: [Team]
equipments: [Equipment]
supplies: [Supply]
//team에 id값을 Int type으로 받아주고 list로 그 값을 반환해 준다.
team(id: Int): [Team]
}
type Team{
id: Int,
manager: String,
office: String,
extension_number: String,
mascot: String,
cleaning_duty: String,
project: String
}
type Equipment{
id: String,
used_by: String,
count: Int,
new_or_used: String
}
type Supply{
id: String,
team: Int
}
Query: {
// team이라는 query를 추가하고 인자값들을 넣어주고 나서
내가 지금 args.id로 넣은 값과 database.teams에서 가져온 배열중에서 id값과 비교를해서
같은 것들만 filter를 해서 가져 온다.
team: (parent, args, context, info) => database.teams
.filter((team) => {
return team.id === args.id
})
,
equipments: () => database.equipments,
supplies: () => database.supplies,
}
특정 team의 아이디의 번호로 검색해서 그 아이디 번호가 속해있는 team을 뽑아 오고 싶을때 resolvers에 team이라는 query를 추가하고 type Query에 검색하려고하는 type을 추가해주면 된다.

여기서도 똑같이 내가 검색하고 싶은 스키마를 지정해서 qeury로 보내주면 해당 아이디에 값과 지정된 값만 응답되는것을 확인할수 있다.
type Query {
teams: [Team]
equipments: [Equipment]
supplies: [Supply]
}
type Team{
id: Int,
manager: String,
office: String,
extension_number: String,
mascot: String,
cleaning_duty: String,
project: String
// supplies에 Supply를 가져오게 한다.
supplies: [Supply]
}
type Equipment{
id: String,
used_by: String,
count: Int,
new_or_used: String
}
type Supply{
id: String,
team: Int
}
//
Query: {
teams: () => database.teams
.map((team) => {
// map 메소드를 사용해서 team에 데이터들을 가져와서
team.supplies = database.supplies
// team에 supplies라는 객체가 database에 supplies의 객체를 가져오게 한다.
.filter((supply) => {
// database.teams의 객체의 id값과 방금 가져온 supplies의 team값이 같을때 filter를 한다.
return supply.team === team.id
})
return team
})
,
}
Team에 데이터와 Supply에 데이터를 하나로 묶어서 요청하는 상황을 만들어 볼수 있다.

추가해준 supplies라는 요청을 추가 하는데
type Supply{
id: String,
team: Int
}
지정해 놓은 type양식대로 보내줘야 정상적으로 값을 응답 받을수가 있다.