chore: Refactor graphQL queries structure

This commit is contained in:
Faruk AYDIN
2021-10-11 21:01:34 +02:00
committed by Ali BARIN
parent 1d65a7c0dd
commit 61e1488e11
6 changed files with 52 additions and 39 deletions

View File

@@ -1,30 +1,8 @@
import { GraphQLObjectType, GraphQLSchema, GraphQLString, GraphQLList, GraphQLNonNull } from 'graphql';
import getApps from './queries/get-apps';
import getApp from './queries/get-app';
import appType from './types/app';
import { GraphQLSchema } from 'graphql';
import rootQuery from './root-query';
const queryType = new GraphQLObjectType({
name: 'Query',
fields: {
getApps: {
type: GraphQLList(appType),
args: {
name: { type: GraphQLString }
},
resolve: (_, { name }) => getApps(name)
},
getApp: {
type: appType,
args: {
name: { type: GraphQLNonNull(GraphQLString) },
},
resolve: (_, { name }) => getApp(name)
},
}
});
var graphQLSchema = new GraphQLSchema({
query: queryType,
const graphQLSchema = new GraphQLSchema({
query: rootQuery,
});
export default graphQLSchema;

View File

@@ -1,11 +1,27 @@
import { GraphQLString, GraphQLNonNull } from 'graphql';
import App from '../../models/app';
import appType from '../types/app';
const getApp = (name: string) => {
if(!name) {
type Params = {
name: string
}
const getAppResolver = (params: Params) => {
if(!params.name) {
throw new Error('No name provided.')
}
return App.findOneByName(name)
return App.findOneByName(params.name)
}
const getApp = {
type: appType,
args: {
name: { type: GraphQLNonNull(GraphQLString) },
},
resolve: (_: any, params: Params) => getAppResolver(params)
}
export default getApp;

View File

@@ -1,7 +1,21 @@
import { GraphQLString, GraphQLList } from 'graphql';
import appType from '../types/app';
import App from '../../models/app';
const getApps = (name: string) => {
return App.findAll(name)
type Params = {
name: string
}
const getAppsResolver = (params: Params) => {
return App.findAll(params.name)
}
const getApps = {
type: GraphQLList(appType),
args: {
name: { type: GraphQLString }
},
resolve: (_: any, params: Params) => getAppsResolver(params)
}
export default getApps;

View File

@@ -0,0 +1,13 @@
import { GraphQLObjectType } from 'graphql';
import getApps from './queries/get-apps';
import getApp from './queries/get-app';
const rootQuery = new GraphQLObjectType({
name: 'Query',
fields: {
getApps: getApps,
getApp: getApp
}
});
export default rootQuery;

View File

@@ -1,7 +0,0 @@
import getApps from './queries/get-apps';
const rootResolver = {
getApps: getApps
};
export default rootResolver;

View File

@@ -1,5 +1,4 @@
import { graphqlHTTP } from 'express-graphql';
import rootResolver from '../graphql/root-resolver'
import graphQLSchema from '../graphql/graphql-schema'
const graphQLInstance = graphqlHTTP({