1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-10-18 20:09:08 +02:00
unleash.unleash/migrations/20170211090541-add-default-strategies.js
Ivar 4a989c169a Add default built-in strategies.
Uses migration to define these activation strategies:
- applicationHostname
- gradualRolloutRandom
- gradualRolloutSessionId
- gradualRolloutUserId
- remoteAddress
- userWithId

closes #207
2020-02-20 08:30:47 +01:00

38 lines
1.1 KiB
JavaScript

/* eslint camelcase: "off" */
'use strict';
const strategies = require('./default-strategies.json');
const async = require('async');
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}'
);`;
}
exports.up = function (db, callback) {
const insertStrategies = strategies.map((s) => (cb) => {
db.runSql(insertEventsSQL(s), cb);
db.runSql(insertStrategySQL(s), cb);
});
async.series(insertStrategies, callback);
};
exports.down = function (db, cb) {
return cb();
};