I need help running a search function and a filter from a drop-down using graphql. cant seem to find anything relating to graphql
Hi @Vincent_1, What have you tried and what issues are you running into? There are a few of us here who have ReTool working with GraphQL APIs.
Perhaps start here: GraphQL Integration
so far am able to search from one column, using the filter but I want to search from the entire table and also when attempt to filter from the dropdown the whole table just collapses. here is a code sample of what I have done.
query ListTrans($limit: Int) {
listTrans(limit: $limit,filter: {transRefID: {beginsWith: "{{search_input.value}}"}}) {
items {
createdAt
paymentMethod
paymentRefID
status
totalAmount
}
nextToken
}
}
the above query works just fine to search through the table with in one column it breaks the moment i add something like this
query ListTrans($limit: Int) {
ListTrans(limit: $limit,filter: {paymentRefID: {beginsWith: "{{search_orders.value}}"}, status: {eq: '{{status_filter_orders.value.value}}'}}})
it returns the following error because i have incased statusinput with single quotes
[{"path":null,"locations":[{"line":2,"column":28,"sourceName":null}],"message":"Validation error of type WrongType: argument 'filter.status.eq' with value 'EnumValue{name='undefined'}' is not a valid 'TransStatus' @ 'listTrans'"}]
and if i remove the single quotes i get an empty list
query ListTrans($limit: Int) {
listTrans(limit: $limit,filter: {paymentRefID: {beginsWith: "{{search_orders.value}}"}, status: {eq: {{status_filter_orders.value}}}})
have you considered updating your inputs to accept the entire object and send that object when you trigger the api? Obviously I don't know how you're triggering this in ReTool.
For example
listTrans(limit: $limit, filter: $filter) { ...
send the object to the query as $filter
const filterParam = {
transRefID: {
beginsWith: "{{search_input.value}}"
}
}
send on trigger (if your calling trigger):
MyGraphQLQuery.trigger({
additionalScope: {
filter: filterParam,
}
})
In the GraphQL query you can define the variable $filter
as {{ filter }}
and it will be filled in.
If you provide how you are calling the query we can see about other options.