diff --git a/src/main/config/apollo-server.ts b/src/main/config/apollo-server.ts new file mode 100644 index 00000000..2643619c --- /dev/null +++ b/src/main/config/apollo-server.ts @@ -0,0 +1,13 @@ +import typeDefs from '@/main/graphql/type-defs' +import resolvers from '@/main/graphql/resolvers' + +import { ApolloServer } from 'apollo-server-express' +import { Express } from 'express' + +export default (app: Express): void => { + const server = new ApolloServer({ + resolvers, + typeDefs + }) + server.applyMiddleware({ app }) +} diff --git a/src/main/config/app.ts b/src/main/config/app.ts index 9944912d..cdb4c0d0 100644 --- a/src/main/config/app.ts +++ b/src/main/config/app.ts @@ -1,11 +1,13 @@ import setupMiddlewares from './middlewares' +import setupApolloServer from './apollo-server' import setupRoutes from './routes' import setupStaticFiles from './static-files' -import setupSwagger from './config-swagger' +import setupSwagger from './swagger' import express from 'express' const app = express() +setupApolloServer(app) setupStaticFiles(app) setupSwagger(app) setupMiddlewares(app) diff --git a/src/main/config/config-swagger.ts b/src/main/config/swagger.ts similarity index 100% rename from src/main/config/config-swagger.ts rename to src/main/config/swagger.ts diff --git a/src/main/graphql/resolvers/index.ts b/src/main/graphql/resolvers/index.ts new file mode 100644 index 00000000..a3977501 --- /dev/null +++ b/src/main/graphql/resolvers/index.ts @@ -0,0 +1,3 @@ +import login from './login' + +export default [login] diff --git a/src/main/graphql/resolvers/login.ts b/src/main/graphql/resolvers/login.ts new file mode 100644 index 00000000..3fe65b72 --- /dev/null +++ b/src/main/graphql/resolvers/login.ts @@ -0,0 +1,10 @@ +export default { + Query: { + login () { + return { + accessToken: 'any token', + name: 'any name' + } + } + } +} diff --git a/src/main/graphql/type-defs/base.ts b/src/main/graphql/type-defs/base.ts new file mode 100644 index 00000000..3148e11b --- /dev/null +++ b/src/main/graphql/type-defs/base.ts @@ -0,0 +1,11 @@ +import { gql } from 'apollo-server-express' + +export default gql` + type Query { + _: String + } + + type Mutation { + _: String + } +` diff --git a/src/main/graphql/type-defs/index.ts b/src/main/graphql/type-defs/index.ts new file mode 100644 index 00000000..29623980 --- /dev/null +++ b/src/main/graphql/type-defs/index.ts @@ -0,0 +1,4 @@ +import base from './base' +import login from './login' + +export default [base, login] diff --git a/src/main/graphql/type-defs/login.ts b/src/main/graphql/type-defs/login.ts new file mode 100644 index 00000000..e4a64c23 --- /dev/null +++ b/src/main/graphql/type-defs/login.ts @@ -0,0 +1,12 @@ +import { gql } from 'apollo-server-express' + +export default gql` + extend type Query { + login (email: String!, password: String!): Account! + } + + type Account { + accessToken: String! + name: String! + } +`