2016-02-25 08:10:36 +01:00
|
|
|
// # Update Fixtures
|
|
|
|
// This module handles updating fixtures.
|
|
|
|
// This is done manually, through a series of files stored in an adjacent folder
|
|
|
|
// E.g. if we update to version 004, all the tasks in /004/ are executed
|
|
|
|
|
2016-07-14 12:59:42 +02:00
|
|
|
var Promise = require('bluebird'),
|
2016-09-06 13:16:32 +02:00
|
|
|
_ = require('lodash'),
|
|
|
|
sequence = function sequence(tasks, modelOptions, logger) {
|
|
|
|
// utils/sequence.js does not offer an option to pass cloned arguments
|
|
|
|
return Promise.reduce(tasks, function (results, task) {
|
|
|
|
return task(_.cloneDeep(modelOptions), logger)
|
|
|
|
.then(function (result) {
|
|
|
|
results.push(result);
|
|
|
|
return results;
|
|
|
|
});
|
|
|
|
}, []);
|
|
|
|
},
|
2016-02-25 08:10:36 +01:00
|
|
|
update;
|
|
|
|
|
|
|
|
/**
|
2016-07-14 12:59:42 +02:00
|
|
|
* Handles doing subsequent update for one version
|
2016-02-25 08:10:36 +01:00
|
|
|
*/
|
2016-07-14 12:59:42 +02:00
|
|
|
update = function update(tasks, logger, modelOptions) {
|
2016-03-21 12:44:23 +00:00
|
|
|
logger.info('Running fixture updates');
|
2016-02-25 08:10:36 +01:00
|
|
|
|
2016-07-14 12:59:42 +02:00
|
|
|
if (!tasks.length) {
|
|
|
|
return Promise.resolve();
|
|
|
|
}
|
2016-02-25 08:10:36 +01:00
|
|
|
|
2016-07-14 12:59:42 +02:00
|
|
|
return sequence(tasks, modelOptions, logger);
|
2016-02-25 08:10:36 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
module.exports = update;
|