All files / lib/graphQl writeArgs.js

33.33% Statements 5/15
0% Branches 0/9
0% Functions 0/2
38.46% Lines 5/13
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26  1x   1x 1x 1x   1x                                    
'use strict'
const writeArgs = module.exports = { }
 
const graphQl = require('graphql')
const jsonApi = require('../..')
const joiConverter = require('./joiConverter.js')
 
writeArgs.generate = (resource, allWriteTypes) => {
  const args = {
    id: { type: graphQl.GraphQLString }
  }
  const resourceConfig = jsonApi._resources[resource]
  Object.keys(resourceConfig.attributes).forEach(attribute => {
    if ((attribute === 'id') || (attribute === 'type') || (attribute === 'meta')) return
 
    const joiScheme = resourceConfig.attributes[attribute]
    if (joiScheme._settings && joiScheme._settings.__as) return
 
    args[attribute] = {
      type: joiConverter.shallowInput(joiScheme, allWriteTypes),
      description: joiScheme._description
    }
  })
  return args
}