Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- GraphQL Magic Stuff Dynamic Filter
- // client/serverSideDatasource.js
- const query = (request, columns) => {
- return {
- query: gql`
- query GetRows($start: Int, $end: Int, $sortModel: [SortModel], $groups: [RowGroup], $groupKeys: [String]) {
- rows(
- startRow: $start,
- endRow: $end,
- sorting: $sortModel,
- rowGroups: $groups,
- groupKeys: $groupKeys
- ) {
- ${getFields(columns)}
- }
- }
- `,
- variables: {
- start: request.startRow,
- end: request.endRow,
- sortModel: mapSortModel(request),
- groups: mapGroups(request),
- groupKeys: mapGroupKeys(request)
- },
- }
- };
- const getFields = (columnDefs) => {
- return columnDefs.map(colDef => colDef.field).join();
- };
- const mapGroups = (request) => {
- return request.rowGroupCols.map(grp => {
- return { colId: grp.field }
- });
- };
- const mapGroupKeys = (request) => {
- return request.groupKeys.map(key => key.toString());
- };
- const mapSortModel = (request) => {
- return request.sortModel.map(srt => {
- return { colId: srt.colId, sort: srt.sort }
- });
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement