Skip to content

Instantly share code, notes, and snippets.

View daniele-zurico's full-sized avatar

Daniele Zurico daniele-zurico

View GitHub Profile
{
"name": "kit",
"version": "1.0.0",
"description": "Starting point for the Apollo GraphQL Server tutorial.",
"main": "src/server.ts",
"dependencies": {
"apollo-server": "^2.0.0-beta.2",
"express": "^4.16.3",
"graphql": "0.13.2",
"graphql-tools": "^3.0.0-beta.0",
const MONGO_PORT = 27017;
const MONGO_URL = "localhost";
const dbName = "graphExample";
// help to debug mongoose
mongoose.set("debug", true);
mongoose.connect(`mongodb://${MONGO_URL}:${MONGO_PORT}/${dbName}`);
const app = express();
import helloSchema from "./hello.schema";
import userSchema from "./user.schema";
const schemas = [userSchema, helloSchema];
export default schemas;
import {
addMockFunctionsToSchema,
gql,
makeExecutableSchema
} from "apollo-server";
import { GraphQLSchema } from "graphql";
const helloSchema: GraphQLSchema = makeExecutableSchema({
typeDefs: gql`
type Query {
import {
addMockFunctionsToSchema,
gql,
makeExecutableSchema
} from "apollo-server";
import { GraphQLSchema } from "graphql";
const userSchema: GraphQLSchema = makeExecutableSchema({
typeDefs: gql`
type Query {
import helloResolver from "./hello.resolver";
import userResolver from "./users.resolver";
const resolvers = [userResolver, helloResolver];
export default resolvers;
const helloResolver = {
Query: {
hello: () => {
return "Hello world!";
}
}
};
export default helloResolver;
import { userController } from "../controllers/controllers";
import { AuthenticationError } from "apollo-server";
const userResolver = {
Mutation: {
addUser(root: any, args: any) {
return userController.addUser(root, args);
},
deleteUser(root: any, args: any) {
return userController.deleteUser(root, args);
export { userController } from "./user.controller";
import { User } from "../models/users";
import { Types } from "mongoose";
const userController = {
addUser: (root: any, args: any) => {
const user = new User(args);
return user.save();
},
deleteUser: (root: any, args: any) => User.deleteOne({ _id: args.id }),
updateUser: (root: any, args: any) => {