File tree Expand file tree Collapse file tree 3 files changed +28
-8
lines changed Expand file tree Collapse file tree 3 files changed +28
-8
lines changed Original file line number Diff line number Diff line change
1
+ import { MongoDataSource } from 'apollo-datasource-mongodb'
2
+
3
+ export default class Reviews extends MongoDataSource {
4
+ all ( ) {
5
+ return this . collection . find ( ) . toArray ( )
6
+ }
7
+ }
Original file line number Diff line number Diff line change
1
+ import { MongoClient } from 'mongodb'
2
+
3
+ export let db
4
+
5
+ const URL = 'mongodb://localhost:27017/guide'
6
+
7
+ const client = new MongoClient ( URL , { useNewUrlParser : true } )
8
+ client . connect ( e => {
9
+ if ( e ) {
10
+ console . error ( `Failed to connect to MongoDB at ${ URL } ` , e )
11
+ return
12
+ }
13
+
14
+ db = client . db ( )
15
+ } )
Original file line number Diff line number Diff line change 1
1
import { ApolloServer , gql } from 'apollo-server'
2
2
import { getAuthIdFromJWT } from './util/auth'
3
-
4
- const reviews = [
5
- {
6
- text : 'Super-duper book.' ,
7
- stars : 5
8
- }
9
- ]
3
+ import Reviews from './data-sources/Reviews'
4
+ import { db } from './db'
10
5
11
6
const server = new ApolloServer ( {
12
7
typeDefs : gql `
@@ -36,7 +31,7 @@ const server = new ApolloServer({
36
31
Query : {
37
32
me : ( _ , __ , context ) => context . user ,
38
33
hello : ( ) => '🌍🌏🌎' ,
39
- reviews : ( ) => reviews
34
+ reviews : ( _ , __ , { dataSources } ) => dataSources . reviews . all ( )
40
35
} ,
41
36
Review : {
42
37
fullReview : review =>
@@ -51,6 +46,9 @@ const server = new ApolloServer({
51
46
}
52
47
}
53
48
} ,
49
+ dataSources : ( ) => ( {
50
+ reviews : new Reviews ( db . collection ( 'reviews' ) )
51
+ } ) ,
54
52
context : async ( { req } ) => {
55
53
const context = { }
56
54
You can’t perform that action at this time.
0 commit comments