Example #1
0
 return reduce(object._typeConfig, (def, value, key) => {
   if (value !== undefined) {
     switch (key) {
       case 'fields':
         def.fields = reduce(object.getFields(), (fields, field, name) => {
           fields[name] = processArg(field).arg;
           return fields;
         }, Object.create(null));
         break;
       case 'description':
         set(def, key, value, (value !== ''));
         break;
       case 'astNode':
         const directives = extractDirectives(get(object, [ 'astNode' ]));
         set(def, '@directives', directives, Boolean(directives));
         break;
       default:
         break;
     }
   }
   return def;
 }, {
import { GraphQLInputObjectType } from 'graphql';

import { OrderDirectionType } from '../enum/OrderDirectionType';
import { DateTimeField } from '../enum/DateTimeField';

export const ChronologicalOrder = new GraphQLInputObjectType({
  name: 'ChronologicalOrder',
  description: 'Input to order results chronologically',
  fields: {
    field: {
      description: 'Field to chronologically order by.',
      defaultValue: 'createdAt',
      type: DateTimeField,
    },
    direction: {
      description: 'Ordering direction.',
      defaultValue: 'DESC',
      type: OrderDirectionType,
    },
  },
});

ChronologicalOrder.defaultValue = Object.entries(ChronologicalOrder.getFields()).reduce(
  (values, [key, value]) => ({
    ...values,
    [key]: value.defaultValue,
  }),
  {},
);
  },
});

export const TransactionOrder = new GraphQLInputObjectType({
  name: 'TransactionOrder',
  description: 'Ordering options for transactions',
  fields: {
    field: {
      description: 'The field to order transactions by.',
      defaultValue: 'createdAt',
      type: new GraphQLEnumType({
        name: 'TransactionOrderField',
        description: 'Properties by which transactions can be ordered.',
        values: {
          CREATED_AT: {
            value: 'createdAt',
            description: 'Order transactions by creation time.',
          },
        },
      }),
    },
    direction: {
      description: 'The ordering direction.',
      defaultValue: 'DESC',
      type: OrderDirectionType,
    },
  },
});

TransactionOrder.defaultValue = Object.entries(TransactionOrder.getFields()).reduce(
  (values, [key, value]) => ({