Search code examples
graphqlgraphql-js

graphQL Query: getting error "Expected value of type ..., found ..."


Suppose I have the following object types:

    type Price {
        currency: Currency!,
        amount: Float!
    }

    type Attribute {
        displayValue: String,
        value: String,
        id: String!
    }

    type AttributeSet {
        id: String!,
        name: String,
        type: String,
        items: [Attribute]
    }

    type Product {
        id: String!,
        name: String!,
        inStock: Boolean,
        gallery: [String],
        description: String!,
        category: String!,
        attributes: [AttributeSet]
        prices: [Price!]!,
        brand: String!
    }

    type Category {
        name: String,
        products: [Product]!
    }

    type Currency {
        label: String!,
        symbol: String!
    }

    input CategoryInput {
        title: String!
    }

    type Query {
        categories: [Category],
        category(input: CategoryInput): Category,
        product(id: String!): Product,
        currencies: [Currency]
    }

And these are the Types for Category:

export enum Category {
    all = 'all',
    clothes = 'clothes',
    tech = 'tech'
};

In graphQL Playground, I am trying to make a query to exhibit all the names and products/id of the elements with the category all. Here's my attempt:

{
  category(input: "all") {
    name
    products {
      id
    }
  }
}

But I'm getting the following error message:

"message": "Expected value of type \"CategoryInput\", found \"all\".",

I need help trying to understand what went wrong since all is a valid type. Thank you in advance.


Solution

  • Just found my mistake

    CategoryInput is of type

    input CategoryInput {
            title: String!
        }
    
    

    So a proper query would be:

    {
      category(input: { title: "all" }) {
        name
        products {
          id
        }
      }
    }