1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-10-18 20:09:08 +02:00
unleash.unleash/src/migrations/20191023184858-flexible-rollout-strategy.js
Fredrik Strand Oseberg c1aab06798
Feature/setup typescript
This sets up the typescript compiler.

Allowing gradual migration to typescript.

Co-authored-by: Christopher Kolstad <chriswk@getunleash.ai>
Co-authored-by: Ivar Conradi Østhus <ivarconr@gmail.com>
Co-authored-by: Fredrik Oseberg <fredrik.oseberg@getunleash.ai>
Co-authored-by: Clint Checkett <clintchecketts@churchofjesuschrist.org>

fixes: #676
2021-02-12 11:42:00 +01:00

65 lines
1.8 KiB
JavaScript

'use strict';
const async = require('async');
const flexibleRollout = require('./flexible-rollout-strategy.json');
function insertStrategySQL(strategy) {
return `
INSERT INTO strategies (name, description, parameters, built_in)
SELECT '${strategy.name}', '${strategy.description}', '${JSON.stringify(
strategy.parameters,
)}', 1
WHERE
NOT EXISTS (
SELECT name FROM strategies WHERE name = '${strategy.name}'
);`;
}
function insertEventsSQL(strategy) {
return `
INSERT INTO events (type, created_by, data)
SELECT 'strategy-created', 'migration', '${JSON.stringify(strategy)}'
WHERE
NOT EXISTS (
SELECT name FROM strategies WHERE name = '${strategy.name}'
);`;
}
function removeEventsSQL(strategy) {
return `
INSERT INTO events (type, created_by, data)
SELECT 'strategy-deleted', 'migration', '${JSON.stringify(strategy)}'
WHERE
EXISTS (
SELECT name FROM strategies WHERE name = '${
strategy.name
}' AND built_in = 1
);`;
}
function removeStrategySQL(strategy) {
return `
DELETE FROM strategies
WHERE name = '${strategy.name}' AND built_in = 1`;
}
exports.up = function(db, callback) {
async.series(
[
db.runSql.bind(db, insertEventsSQL(flexibleRollout)),
db.runSql.bind(db, insertStrategySQL(flexibleRollout)),
],
callback,
);
};
exports.down = function(db, callback) {
async.series(
[
db.runSql.bind(db, removeEventsSQL(flexibleRollout)),
db.runSql.bind(db, removeStrategySQL(flexibleRollout)),
],
callback,
);
};