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

Implement EdgesSchema.{addKeywords,removeKeywords} #35

Merged
merged 1 commit into from Jul 6, 2017
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
33 changes: 33 additions & 0 deletions src/resolvers-cassandra/Edges/mutations.js
@@ -1,19 +1,52 @@
'use strict';

const cassandraConnector = require('../../clients/cassandra/CassandraConnector');
const withRunTime = require('../shared').withRunTime;

/**
* @param {{input: {site: string, edges: Array<{name: string}>}}} args
* @returns {Promise.<{runTime: string, edges: Array<{name: string}>}>}
*/
function removeKeywords(args, res) { // eslint-disable-line no-unused-vars
return new Promise((resolve, reject) => {
if (!args || !args.edges || !args.edges.length) return reject('No keywords to remove specified');

const mutations = args.edges.map(edge => ({
mutation: 'DELETE FROM fortis.watchlist WHERE keyword = ?',
params: [edge.name]
}));

cassandraConnector.executeBatchMutations(mutations)
.then(_ => { // eslint-disable-line no-unused-vars
resolve({
edges: args.edges
});
})
.catch(reject);
});
}

/**
* @param {{input: {site: string, edges: Array<{name: string}>}}} args
* @returns {Promise.<{runTime: string, edges: Array<{name: string}>}>}
*/
function addKeywords(args, res) { // eslint-disable-line no-unused-vars
return new Promise((resolve, reject) => {
if (!args || !args.edges || !args.edges.length) return reject('No keywords to add specified');

const mutations = args.edges.map(edge => ({
mutation: 'INSERT INTO fortis.watchlist (keyword) VALUES (?)',
params: [edge.name]
}));

cassandraConnector.executeBatchMutations(mutations)
.then(_ => { // eslint-disable-line no-unused-vars
resolve({
edges: args.edges
});
})
.catch(reject);
});
}

/**
Expand Down