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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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