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:
parent
775b6f5900
commit
d6bdc578c9
@ -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));
|
||||
|
@ -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()
|
||||
|
@ -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) {
|
||||
|
@ -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: {} },
|
||||
},
|
||||
];
|
||||
|
@ -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',
|
||||
};
|
||||
|
@ -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,
|
||||
}))
|
||||
|
@ -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,
|
||||
|
@ -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,
|
||||
}))
|
||||
|
Loading…
Reference in New Issue
Block a user