From 943dd33563d9a009c3eb953bade50e92372d9691 Mon Sep 17 00:00:00 2001 From: Kristian Freeman Date: Mon, 19 Aug 2019 11:52:31 -0500 Subject: [PATCH] Begin re-organizing files to follow Apollo tuts --- src/{ => datasources}/pokeapi.js | 0 src/handlers/apollo.js | 44 ++++++-------------------------- src/resolvers.js | 7 +++++ src/schema.js | 26 +++++++++++++++++++ 4 files changed, 41 insertions(+), 36 deletions(-) rename src/{ => datasources}/pokeapi.js (100%) create mode 100644 src/resolvers.js create mode 100644 src/schema.js diff --git a/src/pokeapi.js b/src/datasources/pokeapi.js similarity index 100% rename from src/pokeapi.js rename to src/datasources/pokeapi.js diff --git a/src/handlers/apollo.js b/src/handlers/apollo.js index 7fc1290..102c722 100644 --- a/src/handlers/apollo.js +++ b/src/handlers/apollo.js @@ -1,47 +1,19 @@ -const { ApolloServer, gql } = require('apollo-server-cloudflare') +const { ApolloServer } = require('apollo-server-cloudflare') const { graphqlCloudflare } = require('apollo-server-cloudflare/dist/cloudflareApollo') -const { PokemonAPI } = require('../pokeapi') -const typeDefs = gql` - type PokemonSprites { - front_default: String! - front_shiny: String! - front_female: String! - front_shiny_female: String! - back_default: String! - back_shiny: String! - back_female: String! - back_shiny_female: String! - } +const PokemonAPI = require('./datasources/pokeapi') +const resolvers = require('../resolvers') +const typeDefs = require('../schema') - type Pokemon { - id: ID! - name: String! - height: Int! - weight: Int! - sprites: PokemonSprites! - } - - type Query { - pokemon(id: ID!): Pokemon - } -` - -const resolvers = { - Query: { - pokemon: async (_source, { id }, { dataSources }) => { - return dataSources.pokemonAPI.getPokemon(id) - }, - }, -} +const dataSources = () => ({ + pokemonAPI: new PokemonAPI(), +}) const server = new ApolloServer({ typeDefs, resolvers, introspection: true, - dataSources: () => ({ - pokemonAPI: new PokemonAPI(), - }), + dataSources, }) const handler = (request, _graphQLOptions) => diff --git a/src/resolvers.js b/src/resolvers.js new file mode 100644 index 0000000..dc1bec9 --- /dev/null +++ b/src/resolvers.js @@ -0,0 +1,7 @@ +module.exports = { + Query: { + pokemon: async (_source, { id }, { dataSources }) => { + return dataSources.pokemonAPI.getPokemon(id) + }, + }, +} diff --git a/src/schema.js b/src/schema.js new file mode 100644 index 0000000..c6d824e --- /dev/null +++ b/src/schema.js @@ -0,0 +1,26 @@ +const { gql } = require('apollo-server-cloudflare') + +module.exports = gql` + type PokemonSprites { + front_default: String! + front_shiny: String! + front_female: String! + front_shiny_female: String! + back_default: String! + back_shiny: String! + back_female: String! + back_shiny_female: String! + } + + type Pokemon { + id: ID! + name: String! + height: Int! + weight: Int! + sprites: PokemonSprites! + } + + type Query { + pokemon(id: ID!): Pokemon + } +`