Skip to content

Commit ea6566d

Browse files
committed
Add a new Query
1 parent 6e94090 commit ea6566d

2 files changed

Lines changed: 25 additions & 7 deletions

File tree

graphQLApollo/index.js

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,23 +20,35 @@ const resolvers = {
2020
},
2121
addressAuthor(parent, args, context) {
2222
let returnAddress = {}
23-
for(let k =0; k < db.authors.length; k++) {
23+
for (let k = 0; k < db.authors.length; k++) {
2424
if (db.authors[k].name === args.name) {
25-
for(let i = 0; i< db.address.length ; i++) {
26-
if(db.address[i].id === db.authors[k].address) {
25+
for (let i = 0; i < db.address.length; i++) {
26+
if (db.address[i].id === db.authors[k].address) {
2727
returnAddress = db.address[i]
2828
}
2929
}
30-
}}
30+
}
31+
}
3132
if (returnAddress) return returnAddress
3233
},
33-
book(parent, args, context) {
34+
booksAndAuthors() {
35+
let booksAndAuthorsArray = []
36+
for (let i = 0; i < db.books.length; i++) {
37+
for(let j = 0; j < db.authors.length; j++) {
38+
if(db.books[i].author === db.authors[j].id) {
39+
booksAndAuthorsArray.push({title: db.books[i].title, authorName: db.authors[j].name })
40+
}
41+
}
42+
}
43+
return booksAndAuthorsArray
44+
},
45+
book(parent, args, context) {
3446
//console.log(parent, "\n", context)
3547
let result = db.books.find((b) => {
3648
return b.id === args.id
3749
})
38-
39-
if(result) {
50+
51+
if (result) {
4052
return result
4153
} else {
4254
throw new GraphQLError('NOT FOUND', {

graphQLApollo/schema/schema.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,16 @@ export const typeDefs = `#graphql
2121
author: String!
2222
}
2323
24+
type BookAndAuthor {
25+
title: String!
26+
authorName: String!
27+
}
28+
2429
type Query {
2530
books: [Book]
2631
book(id: Int!): Book
2732
authors: [Author]
2833
addressAuthor(name: String!): Address
34+
booksAndAuthors: [BookAndAuthor]
2935
}
3036
`

0 commit comments

Comments
 (0)