diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7c0449259ca10bbc9aba08fb08b06817a9d37be4..71a6cec492bb21276249979a9acb3ad825fa7dcd 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -49,7 +49,7 @@ test:lint: test:async: stage: test script: - - npm start + - npm start & - sleep 5 - curl http://localhost:3000 - pkill node @@ -60,8 +60,7 @@ test:async: deploy_staging: stage: deploy script: - - npm start & - - sleep 30 + - npm start & sleep 5 - exit 0 environment: name: staging diff --git a/src/index.js b/src/index.js index f9c12e25fa70ce6bea68fcc57f963ba6de49b973..bcb0a10fd87944a1fabf547abf23993be3695652 100644 --- a/src/index.js +++ b/src/index.js @@ -1,9 +1,6 @@ import server from './server'; import router from './admin_view/admin_view'; import colors from 'colors'; -import { graphqlExpress, graphiqlExpress } from 'graphql-server-express'; -import makeExecutableSchema from 'graphql-tools'; -import knex from '../db/knex_router'; import path from 'path'; /** diff --git a/src/server.js b/src/server.js index b24da8245af10f998931de0c6b71a3bc6838564e..f48b6c484977dcc6755fac07c9472e76d5d2c740 100644 --- a/src/server.js +++ b/src/server.js @@ -2,8 +2,11 @@ import express from 'express'; import bodyParser from 'body-parser'; import favicon from 'serve-favicon'; import morgan from 'morgan'; +import knex from '../db/knex_router'; import path from 'path'; import ldap_auth from './ldap_auth/ldap_auth'; +import { graphqlExpress, graphiqlExpress } from 'graphql-server-express'; +import { makeExecutableSchema } from 'graphql-tools'; /** * @file server.js @@ -34,4 +37,32 @@ server.use(morgan('dev')); // setting up ldap authentication ldap_auth(server); +const typeDefs = ` + type Query { + groups: [Group] + } + + type Group { + name: String + id: Int + school: String + } +`; + +const resolvers = { + Query: { + groups: () => knex.select().from('groups') + } +}; + +const schema = makeExecutableSchema({ + typeDefs, + resolvers +}); + +server.use('/graphql', bodyParser.json(), graphqlExpress({schema})); + +server.use('/graphiql', graphiqlExpress({ endpointURL: '/graphql'})); + + export default server; diff --git a/src/views/home.pug b/src/views/home.pug index 7835d6bbb2fa47bc8639a56d45e0373c45de791b..20f88d1de35b41901c1385d5def01325ccd3986f 100644 --- a/src/views/home.pug +++ b/src/views/home.pug @@ -12,4 +12,4 @@ block content input.form-control(type="search", name="columns") button.form-control(type="submit") Search | - a(href="/graphql") Check GraphQL \ No newline at end of file + a(href="/graphiql") Check GraphQL \ No newline at end of file