1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-06-04 01:18:20 +02:00

uppercase event type key constants

This commit is contained in:
sveisvei 2016-12-09 14:50:30 +01:00
parent 775b6f5900
commit d6bdc578c9
8 changed files with 53 additions and 45 deletions

View File

@ -1,23 +1,24 @@
'use strict';
const eventType = require('../event-type');
const { FEATURE_CREATED, FEATURE_UPDATED, FEATURE_ARCHIVED, FEATURE_REVIVED } = require('../event-type');
const logger = require('../logger');
const NotFoundError = require('../error/notfound-error');
const FEATURE_COLUMNS = ['name', 'description', 'enabled', 'strategies', 'created_at'];
const TABLE = 'features';
class FeatureToggleStore {
constructor (db, eventStore) {
this.db = db;
eventStore.on(eventType.featureCreated, event => this._createFeature(event.data));
eventStore.on(eventType.featureUpdated, event => this._updateFeature(event.data));
eventStore.on(eventType.featureArchived, event => this._archiveFeature(event.data));
eventStore.on(eventType.featureRevived, event => this._reviveFeature(event.data));
eventStore.on(FEATURE_CREATED, event => this._createFeature(event.data));
eventStore.on(FEATURE_UPDATED, event => this._updateFeature(event.data));
eventStore.on(FEATURE_ARCHIVED, event => this._archiveFeature(event.data));
eventStore.on(FEATURE_REVIVED, event => this._reviveFeature(event.data));
}
getFeatures () {
return this.db
.select(FEATURE_COLUMNS)
.from('features')
.from(TABLE)
.where({ archived: 0 })
.orderBy('name', 'asc')
.map(this.rowToFeature);
@ -26,7 +27,7 @@ class FeatureToggleStore {
getFeature (name) {
return this.db
.first(FEATURE_COLUMNS)
.from('features')
.from(TABLE)
.where({ name })
.then(this.rowToFeature);
}
@ -34,7 +35,7 @@ class FeatureToggleStore {
getArchivedFeatures () {
return this.db
.select(FEATURE_COLUMNS)
.from('features')
.from(TABLE)
.where({ archived: 1 })
.orderBy('name', 'asc')
.map(this.rowToFeature);
@ -64,13 +65,13 @@ class FeatureToggleStore {
}
_createFeature (data) {
return this.db('features')
return this.db(TABLE)
.insert(this.eventDataToRow(data))
.catch(err => logger.error('Could not insert feature, error was: ', err));
}
_updateFeature (data) {
return this.db('features')
return this.db(TABLE)
.where({ name: data.name })
.update(this.eventDataToRow(data))
.catch(err => logger.error('Could not update feature, error was: ', err));

View File

@ -1,6 +1,6 @@
'use strict';
const eventType = require('../event-type');
const { STRATEGY_CREATED, STRATEGY_DELETED } = require('../event-type');
const logger = require('../logger');
const NotFoundError = require('../error/notfound-error');
const STRATEGY_COLUMNS = ['name', 'description', 'parameters_template'];
@ -9,8 +9,8 @@ const TABLE = 'strategies';
class StrategyStore {
constructor (db, eventStore) {
this.db = db;
eventStore.on(eventType.strategyCreated, event => this._createStrategy(event.data));
eventStore.on(eventType.strategyDeleted, event => {
eventStore.on(STRATEGY_CREATED, event => this._createStrategy(event.data));
eventStore.on(STRATEGY_DELETED, event => {
db(TABLE)
.where('name', event.data.name)
.del()

View File

@ -1,18 +1,25 @@
'use strict';
const eventType = require('./event-type');
const {
STRATEGY_CREATED,
STRATEGY_DELETED,
FEATURE_CREATED,
FEATURE_UPDATED,
FEATURE_ARCHIVED,
FEATURE_REVIVED,
} = require('./event-type');
const diff = require('deep-diff').diff;
const strategyTypes = [
eventType.strategyCreated,
eventType.strategyDeleted,
STRATEGY_CREATED,
STRATEGY_DELETED,
];
const featureTypes = [
eventType.featureCreated,
eventType.featureUpdated,
eventType.featureArchived,
eventType.featureRevived,
FEATURE_CREATED,
FEATURE_UPDATED,
FEATURE_ARCHIVED,
FEATURE_REVIVED,
];
function baseTypeFor (event) {

View File

@ -2,7 +2,7 @@
const test = require('ava');
const eventDiffer = require('./event-differ');
const eventType = require('./event-type');
const { FEATURE_CREATED, FEATURE_UPDATED } = require('./event-type');
const logger = require('./logger');
test.beforeEach(() => {
@ -11,7 +11,7 @@ test.beforeEach(() => {
test('fails if events include an unknown event type', t => {
const events = [
{ type: eventType.featureCreated, data: {} },
{ type: FEATURE_CREATED, data: {} },
{ type: 'unknown-type', data: {} },
];
@ -26,11 +26,11 @@ test('diffs a feature-update event', t => {
const events = [
{
type: eventType.featureUpdated,
type: FEATURE_UPDATED,
data: { name: feature, description: desc, strategy: 'default', enabled: true, parameters: { value: 2 } },
},
{
type: eventType.featureCreated,
type: FEATURE_CREATED,
data: { name: feature, description: desc, strategy: 'default', enabled: false, parameters: { value: 1 } },
},
];
@ -56,19 +56,19 @@ test('diffs a feature-update event', t => {
test('diffs only against features with the same name', t => {
const events = [
{
type: eventType.featureUpdated,
type: FEATURE_UPDATED,
data: { name: 'bar', description: 'desc', strategy: 'default', enabled: true, parameters: {} },
},
{
type: eventType.featureUpdated,
type: FEATURE_UPDATED,
data: { name: 'foo', description: 'desc', strategy: 'default', enabled: false, parameters: {} },
},
{
type: eventType.featureCreated,
type: FEATURE_CREATED,
data: { name: 'bar', description: 'desc', strategy: 'default', enabled: false, parameters: {} },
},
{
type: eventType.featureCreated,
type: FEATURE_CREATED,
data: { name: 'foo', description: 'desc', strategy: 'default', enabled: true, parameters: {} },
},
];
@ -84,11 +84,11 @@ test('diffs only against features with the same name', t => {
test('sets an empty array of diffs if nothing was changed', t => {
const events = [
{
type: eventType.featureUpdated,
type: FEATURE_UPDATED,
data: { name: 'foo', description: 'desc', strategy: 'default', enabled: true, parameters: {} },
},
{
type: eventType.featureCreated,
type: FEATURE_CREATED,
data: { name: 'foo', description: 'desc', strategy: 'default', enabled: true, parameters: {} },
},
];
@ -100,7 +100,7 @@ test('sets an empty array of diffs if nothing was changed', t => {
test('sets diffs to null if there was nothing to diff against', t => {
const events = [
{
type: eventType.featureUpdated,
type: FEATURE_UPDATED,
data: { name: 'foo', description: 'desc', strategy: 'default', enabled: true, parameters: {} },
},
];

View File

@ -1,10 +1,10 @@
'use strict';
module.exports = {
featureCreated: 'feature-created',
featureUpdated: 'feature-updated',
featureArchived: 'feature-archived',
featureRevived: 'feature-revived',
strategyCreated: 'strategy-created',
strategyDeleted: 'strategy-deleted',
FEATURE_CREATED: 'feature-created',
FEATURE_UPDATED: 'feature-updated',
FEATURE_ARCHIVED: 'feature-archived',
FEATURE_REVIVED: 'feature-revived',
STRATEGY_CREATED: 'strategy-created',
STRATEGY_DELETED: 'strategy-deleted',
};

View File

@ -1,7 +1,7 @@
'use strict';
const logger = require('../logger');
const eventType = require('../event-type');
const { FEATURE_REVIVED } = require('../event-type');
const ValidationError = require('../error/validation-error');
const validateRequest = require('../error/validate-request');
@ -34,7 +34,7 @@ module.exports = function (app, config) {
validateRequest(req)
.then(() => eventStore.store({
type: eventType.featureRevived,
type: FEATURE_REVIVED,
createdBy: req.connection.remoteAddress,
data: req.body,
}))

View File

@ -1,7 +1,7 @@
'use strict';
const logger = require('../logger');
const eventType = require('../event-type');
const { FEATURE_CREATED, FEATURE_UPDATED, FEATURE_ARCHIVED } = require('../event-type');
const NameExistsError = require('../error/name-exists-error');
const NotFoundError = require('../error/notfound-error');
const ValidationError = require('../error/validation-error.js');
@ -73,7 +73,7 @@ module.exports = function (app, config) {
.then((_req) => legacyFeatureMapper.toNewFormat(_req.body))
.then(validateStrategy)
.then((featureToggle) => eventStore.store({
type: eventType.featureCreated,
type: FEATURE_CREATED,
createdBy: userName,
data: featureToggle,
}))
@ -91,7 +91,7 @@ module.exports = function (app, config) {
featureToggleStore.getFeature(featureName)
.then(() => validateStrategy(updatedFeature))
.then(() => eventStore.store({
type: eventType.featureUpdated,
type: FEATURE_UPDATED,
createdBy: userName,
data: updatedFeature,
}))
@ -105,7 +105,7 @@ module.exports = function (app, config) {
featureToggleStore.getFeature(featureName)
.then(() => eventStore.store({
type: eventType.featureArchived,
type: FEATURE_ARCHIVED,
createdBy: userName,
data: {
name: featureName,

View File

@ -53,7 +53,7 @@ module.exports = function (app, config) {
strategyStore.getStrategy(strategyName)
.then(() => eventStore.store({
type: eventType.strategyDeleted,
type: eventType.STRATEGY_DELETED,
createdBy: extractUser(req),
data: {
name: strategyName,
@ -72,7 +72,7 @@ module.exports = function (app, config) {
validateRequest(req)
.then(validateStrategyName)
.then(() => eventStore.store({
type: eventType.strategyCreated,
type: eventType.STRATEGY_CREATED,
createdBy: extractUser(req),
data: newStrategy,
}))