From e8f1007d4d3ddc0bbc1d1a6d802717394ecd6620 Mon Sep 17 00:00:00 2001 From: Clemens Wolff Date: Mon, 3 Jul 2017 14:22:45 -0700 Subject: [PATCH] Implement EdgesSchema.{addKeywords,removeKeywords} --- src/resolvers-cassandra/Edges/mutations.js | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/resolvers-cassandra/Edges/mutations.js b/src/resolvers-cassandra/Edges/mutations.js index 1d16a06..65d58d3 100644 --- a/src/resolvers-cassandra/Edges/mutations.js +++ b/src/resolvers-cassandra/Edges/mutations.js @@ -1,5 +1,6 @@ 'use strict'; +const cassandraConnector = require('../../clients/cassandra/CassandraConnector'); const withRunTime = require('../shared').withRunTime; /** @@ -7,6 +8,22 @@ const withRunTime = require('../shared').withRunTime; * @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); + }); } /** @@ -14,6 +31,22 @@ function removeKeywords(args, res) { // eslint-disable-line no-unused-vars * @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); + }); } /**