title: Conditional branches within graphQL resolve
body: <p>I have a graphQL <code>RootQueryType</code> which currently looks like this:</p>
  
  <pre><code>const RootQueryType = new graphql.GraphQLObjectType({
    name: 'RootQueryType',
    fields: {
      accounts: {
        type: graphql.GraphQLList(Account),
        description: 'A list of accounts matching the provided arguments.',
        args: {
          type: {
            type: graphql.GraphQLString
          },
          country: {
            type: graphql.GraphQLString
          },
          currency: {
            type: graphql.GraphQLString
          }
        },
        resolve: (obj, args) =&gt; {
          if (args.country === 'US') {
            db.USaccounts.query()
          } else if (args.currency === 'GBP') {
            db.UKaccounts.query()
          } else if ...
        }
      }
    }
  });
  </code></pre>
  
  <p>Basically, my resolve will be a large set of conditional branches which check for the presence of various combinations of arguments and call the appropriate DB or internal API endpoint with the correct args passed. Is this the correct approach to handling arguments in graphQL?</p>