Some fix with Apollo

This commit is contained in:
Riccardo
2021-01-03 11:10:52 +01:00
parent b5129342e3
commit 9641e4f7e3
3 changed files with 42 additions and 127 deletions

View File

@@ -1,27 +1,56 @@
import dotenv from 'dotenv'; import dotenv from 'dotenv';
import express from 'express'; import express from 'express';
// const express = require("express"); import { ApolloServer, PubSub } from 'apollo-server-express';
// const { ApolloServer, PubSub } = require('apollo-server');
import { ApolloServer } from 'apollo-server-express';
// const mongoose = require("mongoose");
import mongoose from 'mongoose'; import mongoose from 'mongoose';
import './utils/db.js'; import './utils/db.js';
// require('./utils/db')
import schema from './schema/index.js'; import schema from './schema/index.js';
// require('./schema')
dotenv.config(); dotenv.config();
const app = express(); const app = express();
const pubsub = new PubSub();
const server = new ApolloServer({ const server = new ApolloServer({
schema, schema,
cors: true, cors: true,
playground: process.env.NODE_ENV === 'development' ? true : false, playground: process.env.NODE_ENV === 'development' ? true : false,
context: async ({ req }) => {
// if (!db) {
// try {
// if (!dbClient.isConnected()) await dbClient.connect()
// mongo = dbClient.db('Calendar') // database name
// console.log(db);
// } catch (e) {
// console.log('--->error while connecting with graphql context (db)', e)
// }
return {
...req,
mongoose,
pubsub,
userId:
req && req.headers.authorization
? getUserId(req)
: null
}
},
subscriptions: {
onConnect: (connectionParams) => {
if (connectionParams.authToken) {
return {
mongoose,
userId: getUserId(
null,
connectionParams.authToken
)
};
} else {
return {
mongoose
};
}
}
},
introspection: true, introspection: true,
tracing: true, tracing: true,
path: '/', path: '/',
@@ -49,10 +78,6 @@ app.listen({ port: process.env.PORT }, () => {
// const { ApolloServer, PubSub } = require('apollo-server'); // const { ApolloServer, PubSub } = require('apollo-server');
// // const { Cors } = require('cors'); // // const { Cors } = require('cors');
// // const { Express } = require('express'); // // const { Express } = require('express');
@@ -85,47 +110,6 @@ app.listen({ port: process.env.PORT }, () => {
// userResolvers // userResolvers
// }; // };
// app.use(
// "/graphql",
// graphqlHTTP({
// schema: graphqlSchema,
// rootValue: appointmentResolvers,
// graphiql: true,
// })
// )
// const uri = `mongodb+srv://admin:hEbAjhvkrFDHAP3@cluster0.0hjtt.mongodb.net/Calendar?retryWrites=true&w=majority`
// const options = { useNewUrlParser: true, useUnifiedTopology: true }
// let db = mongoose
// .connect(uri, options)
// .then(() => app.listen(4000, console.log("Server is running")))
// .catch(error => {
// throw error
// })
// // const app = new Express();
// // app.use(Cors());
// // const mongo = new MongoClient({
// // errorFormat: 'minimal'
// // });
// // const mongo = MongoClient.connect("mongodb+srv://admin:hEbAjhvkrFDHAP3@cluster0.0hjtt.mongodb.net/Calendar?retryWrites=true&w=majority", function (err, db) {
// // if (err) throw err;
// // console.log("ALL good");
// // //Write databse Insert/Update/Query code here..
// // });
// // const dbClient = new MongoClient(
// // 'mongodb+srv://admin:hEbAjhvkrFDHAP3@cluster0.0hjtt.mongodb.net/Calendar?retryWrites=true&w=majority',
// // {
// // useNewUrlParser: true,
// // useUnifiedTopology: true,
// // }
// // )
// // const resolvers = { // // const resolvers = {
// // Query, // // Query,
// // Mutation, // // Mutation,
@@ -134,70 +118,3 @@ app.listen({ port: process.env.PORT }, () => {
// // Appointment, // // Appointment,
// // Follow // // Follow
// // }; // // };
// // let db;
// // const server = new ApolloServer({
// // typeDefs: fs.readFileSync(
// // path.join(__dirname, 'schema.graphql'),
// // 'utf8'
// // ),
// // resolvers,
// // context: async ({ req }) => {
// // if (!db) {
// // try {
// // if (!dbClient.isConnected()) await dbClient.connect()
// // mongo = dbClient.db('Calendar') // database name
// // console.log(db);
// // } catch (e) {
// // console.log('--->error while connecting with graphql context (db)', e)
// // }
// // }
// // return {
// // ...req,
// // mongo,
// // pubsub,
// // userId:
// // req && req.headers.authorization
// // ? getUserId(req)
// // : null
// // }
// // },
// // // context: ({ req }) => {
// // // return {
// // // ...req,
// // // mongo,
// // // pubsub,
// // // userId:
// // // req && req.headers.authorization
// // // ? getUserId(req)
// // // : null
// // // };
// // // },
// // // subscriptions: {
// // // onConnect: (connectionParams) => {
// // // if (connectionParams.authToken) {
// // // return {
// // // mongo,
// // // userId: getUserId(
// // // null,
// // // connectionParams.authToken
// // // )
// // // };
// // // } else {
// // // return {
// // // mongo
// // // };
// // // }
// // // }
// // // }
// // });
// // // server.applyMiddleware({ app });
// // server
// // .listen()
// // .then(({ url }) =>
// // console.log(`Server is running on ${url}`)
// // );

View File

@@ -1,12 +1,11 @@
import mongoose from 'mongoose'; import mongoose from 'mongoose';
const { Schema } = mongoose;
import timestamps from 'mongoose-timestamp'; import timestamps from 'mongoose-timestamp';
import { composeWithMongoose } from 'graphql-compose-mongoose'; import { composeWithMongoose } from 'graphql-compose-mongoose';
export const TaskSchema = new Schema( export const TaskSchema = new mongoose.Schema(
{ {
user: { user: {
type: Schema.Types.ObjectId, type: mongoose.Schema.Types.ObjectId,
ref: 'User', ref: 'User',
required: true, required: true,
}, },

View File

@@ -1,9 +1,8 @@
import mongoose from 'mongoose'; import mongoose from 'mongoose';
const { Schema } = mongoose
import timestamps from 'mongoose-timestamp'; import timestamps from 'mongoose-timestamp';
import { composeWithMongoose } from 'graphql-compose-mongoose'; import { composeWithMongoose } from 'graphql-compose-mongoose';
export const UserSchema = new Schema( export const UserSchema = new mongoose.Schema(
{ {
name: { name: {
type: String, type: String,