How to add a default value to sort: in query_type.rb

Viewed 90

Existing code in query_type.rb:

def flags(program_id:, filter: {}, sort: {})
      program = Program.find(program_id)
      context[:auth].set_current_parent_program_id(program.id)
      flags = Report.joins(:participant).where(registrants: { program_id: program.id })
      Types::Programs::FlagsFilter.get_filtered(flags: flags, filter: filter, sort: sort)
 end

I am new to Ruby and the flags are coming in reverse order (ascending) and I want to set the default value to descending. I tried setting it like this:

def flags(program_id:, filter: {}, sort: { column: 'created_at', direction: 'DESCENDING' })
      program = Program.find(program_id)
      context[:auth].set_current_parent_program_id(program.id)
      flags = Report.joins(:participant).where(registrants: { program_id: program.id })
      Types::Programs::FlagsFilter.get_filtered(flags: flags, filter: filter, sort: sort)
 end

but I'm getting an error: undefined method `column’ for {:column=>“created_at”, :direction=>“DESCENDING”}:Hash and my flags table is no longer rendering. Any suggestions? I've also tried putting column in quotes.

1 Answers

to set the default value for sort parameter

flags(program_id:, filter: {}, sort: { column: 'created_at', direction: 'desc' })

above sample code is probably the solution

'coz it all still depends on your actual code within the Types::Programs::FlagsFilter.get_filtered class method :-)

Related