Skip to content
This repository has been archived by the owner on Mar 7, 2018. It is now read-only.

Commit

Permalink
Refactor resolvers to use defaultClauses pattern
Browse files Browse the repository at this point in the history
  • Loading branch information
c-w committed Jul 7, 2017
1 parent b5f17f8 commit 33442d1
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 13 deletions.
31 changes: 21 additions & 10 deletions src/resolvers-cassandra/Facts/queries.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,16 +22,23 @@ function cassandraRowToFact(row) {
};
}

function appendDefaultFilters(query, params) {
query += ' AND pipeline IN (\'TadaWeb", \'Bing\', \'CustomEvent\')';
return {query: query, params: params};
function makeDefaultClauses() {
const clauses = [];
const params = [];

clauses.push('(pipeline IN (\'TadaWeb\', \'Bing\', \'CustomEvent\'))');

return {clauses: clauses, params: params};
}

function makeListQuery(args) {
const tagsCondition = args.tagFilter.map(_ => 'detectedkeywords CONTAINS ?').join(' OR '); // eslint-disable-line no-unused-vars
const query = `SELECT * FROM fortis.events WHERE (${tagsCondition})`;
const params = args.tagFilter.slice();
return appendDefaultFilters(query, params);
let {clauses, params} = makeDefaultClauses();

clauses.push(`(${args.tagFilter.map(_ => 'detectedkeywords CONTAINS ?').join(' OR ')})`); // eslint-disable-line no-unused-vars
params = params.concat(args.tagFilter);

const query = `SELECT * FROM fortis.events WHERE (${clauses.join(' AND ')})`;
return {query: query, params: params};
}

/**
Expand All @@ -56,9 +63,13 @@ function list(args, res) { // eslint-disable-line no-unused-vars
}

function makeGetQuery(args) {
let query = 'SELECT * FROM fortis.events WHERE id = ?';
let params = [args.id];
return appendDefaultFilters(query, params);
let {clauses, params} = makeDefaultClauses();

clauses.push('(id = ?)');
params.push(args.id);

let query = `SELECT * FROM fortis.events WHERE ${clauses.join(' AND ')}`;
return {query: query, params: params};
}

/**
Expand Down
6 changes: 3 additions & 3 deletions src/resolvers-cassandra/Tiles/queries.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ const withRunTime = require('../shared').withRunTime;
const trackEvent = require('../../clients/appinsights/AppInsightsClient').trackEvent;
const { makeMap, makeSet } = require('../../utils/collections');

function makeDefaultFilters(args) {
function makeDefaultClauses(args) {
let params = [];
let clauses = [];

Expand Down Expand Up @@ -42,7 +42,7 @@ function makeDefaultFilters(args) {
}

function makeTilesQuery(args, tileIds) {
const {clauses, params} = makeDefaultFilters(args);
const {clauses, params} = makeDefaultClauses(args);

tileIds.forEach(tileId => {
clauses.push('(tileid = ?)');
Expand All @@ -54,7 +54,7 @@ function makeTilesQuery(args, tileIds) {
}

function makeLocationsQuery(args, locationIds) {
let {clauses, params} = makeDefaultFilters(args);
let {clauses, params} = makeDefaultClauses(args);

clauses.push(`(${locationIds.map(_ => '(placeids CONTAINS ?)').join(' OR ')})`); // eslint-disable-line no-unused-vars
params = params.concat(locationIds);
Expand Down

0 comments on commit 33442d1

Please sign in to comment.