Skip to content

Commit 75e2dbc

Browse files
committed
Add fix for subs data
1 parent 3555ec8 commit 75e2dbc

File tree

4 files changed

+34
-14
lines changed

4 files changed

+34
-14
lines changed

final/nosql-products/package.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,14 @@
2525
"@apollo/server": "^4.0.0",
2626
"@apollo/subgraph": "latest",
2727
"apollo-datasource-mongodb": "^0.5.4",
28-
"graphql": "latest",
29-
"graphql-tag": "latest",
30-
"mongodb": "^4.12.1",
3128
"body-parser": "^1.20.2",
3229
"cors": "^2.8.5",
3330
"express": "^4.18.2",
31+
"graphql": "latest",
32+
"graphql-subscriptions": "^2.0.0",
33+
"graphql-tag": "latest",
3434
"graphql-ws": "^5.12.1",
35+
"mongodb": "^4.12.1",
3536
"ws": "^8.13.0"
3637
},
3738
"devDependencies": {

final/nosql-products/src/index.js

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
const { MongoClient } = require("mongodb");
2-
31
const cors = require("cors");
42
const bodyParser = require("body-parser");
53
const json = bodyParser;
@@ -9,7 +7,6 @@ const gql = require("graphql-tag");
97
const { readFileSync } = require("fs");
108
const { ApolloServer } = require("@apollo/server");
119
const { buildSubgraphSchema } = require("@apollo/subgraph");
12-
const { startStandaloneServer } = require("@apollo/server/standalone");
1310
const { ApolloServerPluginInlineTrace } = require("@apollo/server/plugin/inlineTrace");
1411

1512
const { ApolloServerPluginDrainHttpServer } = require("@apollo/server/plugin/drainHttpServer");
@@ -18,25 +15,20 @@ const { createServer } = require("http");
1815
const { WebSocketServer } = require("ws");
1916
const { useServer } = require("graphql-ws/lib/use/ws");
2017

18+
const { dbCollection } = require("./mongoClient");
2119
const resolvers = require("./resolvers");
2220
const ProductsAPI = require("./datasources/products-api");
2321
const port = process.env.PORT ?? 4001;
2422
const subgraphName = require("../package.json").name;
2523

26-
const client = new MongoClient(
27-
'mongodb+srv://workshop-user:[email protected]/?retryWrites=true&w=majority'
28-
);
29-
client.connect();
30-
31-
3224
class ContextValue {
3325
constructor({ req, server }) {
3426
const { cache } = server;
3527
this.dataSources = {
3628
productsAPI: new ProductsAPI({
3729
cache,
3830
contextValue: this,
39-
collection: client.db("ecommerce").collection("products")
31+
collection: dbCollection
4032
})
4133
}
4234
}
@@ -62,6 +54,7 @@ async function main() {
6254
const server = new ApolloServer({
6355
schema,
6456
plugins: [
57+
ApolloServerPluginInlineTrace,
6558
ApolloServerPluginDrainHttpServer({ httpServer }),
6659
{
6760
async serverWillStart() {
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
const { MongoClient } = require("mongodb");
2+
3+
const client = new MongoClient(
4+
'mongodb+srv://workshop-user:[email protected]/?retryWrites=true&w=majority'
5+
);
6+
7+
const collection = client.db("ecommerce").collection("products");
8+
9+
client.connect();
10+
11+
module.exports.dbClient = client;
12+
module.exports.dbCollection = collection;

final/nosql-products/src/resolvers/index.js

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
11
const { Query } = require("./Query");
2+
const { dbCollection } = require("../mongoClient");
3+
const ProductsAPI = require("../datasources/products-api");
4+
5+
const API = new ProductsAPI({
6+
collection: dbCollection
7+
});
8+
29

310
const reviews = [
411
{
@@ -102,7 +109,14 @@ const resolvers = {
102109
let count = 0;
103110
while (true) {
104111
const review = reviews[count++];
105-
yield { reviewAdded: review };
112+
const product = await API.getProduct({id: review.product.id});
113+
114+
yield {
115+
reviewAdded: {
116+
...review,
117+
product
118+
}
119+
};
106120
await new Promise((resolve) => setTimeout(resolve, 3000));
107121
if (count === reviews.length) count = 0;
108122
}

0 commit comments

Comments
 (0)