Easily finding attributes from Ext.grid.GroupingView's xml calls

I have a ext.GroupingView grid that paginates, filters, and obviously groups.

The combination of these options is both awesome and beyond the scope of this discussion.

The problem is, the params request when a user wants a new set of results is something that bears no resemblance to the database schema.

I've ended up doing something like this: http://pastebin.com/m7d998444

That looks like hell, I'm not sure it works, and I dread the idea of maintaining it.

Is there a better solution out there? For those not wanting to look at the horrors beyond that link, I need something to take a filter string with a value, an offset, a group key, a limit, a sort key with ASC>DESC, and turn it into a query that spits out an array of objects sorted first by group and then again by sort.

Thanks in advance -