From df2e23c28215275933e1f135848b81eddf6b0009 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivar=20Conradi=20=C3=98sthus?= Date: Thu, 29 Apr 2021 10:21:29 +0200 Subject: [PATCH] fix: refactor event types --- src/lib/addons/jira-comment-definition.js | 2 +- src/lib/addons/jira-comment.js | 2 +- src/lib/addons/slack-definition.js | 2 +- src/lib/addons/slack.js | 2 +- src/lib/addons/slack.test.js | 2 +- src/lib/addons/teams-definition.js | 2 +- src/lib/addons/teams.js | 2 +- src/lib/addons/teams.test.js | 2 +- src/lib/addons/webhook-definition.js | 2 +- src/lib/addons/webhook.test.js | 2 +- src/lib/db/access-store.ts | 2 +- src/lib/db/addon-store.js | 2 +- src/lib/db/api-token-store.ts | 2 +- src/lib/db/client-instance-store.js | 2 +- src/lib/db/client-metrics-store.js | 2 +- src/lib/db/event-store.ts | 2 +- src/lib/db/feature-toggle-store.js | 2 +- src/lib/db/reset-token-store.ts | 2 +- src/lib/db/tag-store.ts | 2 +- src/lib/db/tag-type-store.ts | 2 +- src/lib/event-differ.js | 2 +- src/lib/event-differ.test.js | 2 +- src/lib/event-hook.js | 2 +- src/lib/event-hook.test.js | 2 +- src/lib/event-type.js | 48 ------------------- src/lib/{events.ts => metric-events.ts} | 0 src/lib/metrics.test.js | 4 +- src/lib/metrics.ts | 4 +- src/lib/middleware/response-time-metrics.ts | 2 +- src/lib/server-impl.ts | 2 +- src/lib/services/addon-service.js | 2 +- src/lib/services/addon-service.test.js | 2 +- src/lib/services/client-metrics/index.js | 2 +- src/lib/services/feature-toggle-service.js | 4 +- src/lib/services/project-service.ts | 12 +++-- src/lib/services/state-service.js | 2 +- src/lib/services/state-service.test.js | 2 +- src/lib/services/tag-service.ts | 2 +- src/lib/services/tag-type-service.ts | 2 +- src/lib/services/user-service.ts | 2 +- src/lib/types/events.ts | 44 +++++++++++++++++ src/test/e2e/api/admin/user-admin.e2e.test.ts | 12 +++-- .../client-metrics-service.e2e.test.js | 2 +- src/test/e2e/stores/event-store.e2e.test.js | 2 +- 44 files changed, 102 insertions(+), 98 deletions(-) delete mode 100644 src/lib/event-type.js rename src/lib/{events.ts => metric-events.ts} (100%) create mode 100644 src/lib/types/events.ts diff --git a/src/lib/addons/jira-comment-definition.js b/src/lib/addons/jira-comment-definition.js index 5844a79543..f937260a83 100644 --- a/src/lib/addons/jira-comment-definition.js +++ b/src/lib/addons/jira-comment-definition.js @@ -3,7 +3,7 @@ const { FEATURE_UPDATED, FEATURE_ARCHIVED, FEATURE_REVIVED, -} = require('../event-type'); +} = require('../types/events'); module.exports = { name: 'jira-comment', diff --git a/src/lib/addons/jira-comment.js b/src/lib/addons/jira-comment.js index 4ae4ad6ce2..1ec7942515 100644 --- a/src/lib/addons/jira-comment.js +++ b/src/lib/addons/jira-comment.js @@ -7,7 +7,7 @@ const { FEATURE_UPDATED, FEATURE_REVIVED, FEATURE_ARCHIVED, -} = require('../event-type'); +} = require('../types/events'); class JiraAddon extends Addon { constructor(args) { diff --git a/src/lib/addons/slack-definition.js b/src/lib/addons/slack-definition.js index f9e7b33d61..31d4124385 100644 --- a/src/lib/addons/slack-definition.js +++ b/src/lib/addons/slack-definition.js @@ -7,7 +7,7 @@ const { FEATURE_REVIVED, FEATURE_STALE_ON, FEATURE_STALE_OFF, -} = require('../event-type'); +} = require('../types/events'); module.exports = { name: 'slack', diff --git a/src/lib/addons/slack.js b/src/lib/addons/slack.js index 6d33101a2f..e4f796a43f 100644 --- a/src/lib/addons/slack.js +++ b/src/lib/addons/slack.js @@ -10,7 +10,7 @@ const { FEATURE_REVIVED, FEATURE_STALE_ON, FEATURE_STALE_OFF, -} = require('../event-type'); +} = require('../types/events'); const definition = require('./slack-definition'); diff --git a/src/lib/addons/slack.test.js b/src/lib/addons/slack.test.js index 205cd5e5a5..9fb4b9e663 100644 --- a/src/lib/addons/slack.test.js +++ b/src/lib/addons/slack.test.js @@ -1,6 +1,6 @@ const test = require('ava'); const proxyquire = require('proxyquire').noCallThru(); -const { FEATURE_CREATED, FEATURE_ARCHIVED } = require('../event-type'); +const { FEATURE_CREATED, FEATURE_ARCHIVED } = require('../types/events'); const SlackAddon = proxyquire.load('./slack', { './addon': class Addon { diff --git a/src/lib/addons/teams-definition.js b/src/lib/addons/teams-definition.js index 0a9c20c2e9..7177f443c6 100644 --- a/src/lib/addons/teams-definition.js +++ b/src/lib/addons/teams-definition.js @@ -7,7 +7,7 @@ const { FEATURE_REVIVED, FEATURE_STALE_ON, FEATURE_STALE_OFF, -} = require('../event-type'); +} = require('../types/events'); module.exports = { name: 'teams', diff --git a/src/lib/addons/teams.js b/src/lib/addons/teams.js index a21e5e73b3..f31d835097 100644 --- a/src/lib/addons/teams.js +++ b/src/lib/addons/teams.js @@ -10,7 +10,7 @@ const { FEATURE_REVIVED, FEATURE_STALE_ON, FEATURE_STALE_OFF, -} = require('../event-type'); +} = require('../types/events'); const definition = require('./teams-definition'); diff --git a/src/lib/addons/teams.test.js b/src/lib/addons/teams.test.js index b28cd278db..c683edc501 100644 --- a/src/lib/addons/teams.test.js +++ b/src/lib/addons/teams.test.js @@ -1,6 +1,6 @@ const test = require('ava'); const proxyquire = require('proxyquire').noCallThru(); -const { FEATURE_CREATED, FEATURE_ARCHIVED } = require('../event-type'); +const { FEATURE_CREATED, FEATURE_ARCHIVED } = require('../types/events'); const TeamsAddon = proxyquire.load('./teams', { './addon': class Addon { diff --git a/src/lib/addons/webhook-definition.js b/src/lib/addons/webhook-definition.js index 2c237bbbdf..26a71c0379 100644 --- a/src/lib/addons/webhook-definition.js +++ b/src/lib/addons/webhook-definition.js @@ -5,7 +5,7 @@ const { FEATURE_REVIVED, FEATURE_STALE_ON, FEATURE_STALE_OFF, -} = require('../event-type'); +} = require('../types/events'); module.exports = { name: 'webhook', diff --git a/src/lib/addons/webhook.test.js b/src/lib/addons/webhook.test.js index 3d9d2d90b9..1fc9179df1 100644 --- a/src/lib/addons/webhook.test.js +++ b/src/lib/addons/webhook.test.js @@ -1,6 +1,6 @@ const test = require('ava'); const proxyquire = require('proxyquire').noCallThru(); -const { FEATURE_CREATED } = require('../event-type'); +const { FEATURE_CREATED } = require('../types/events'); const WebhookAddon = proxyquire.load('./webhook', { './addon': class Addon { diff --git a/src/lib/db/access-store.ts b/src/lib/db/access-store.ts index 886da1d90e..63ff1afe00 100644 --- a/src/lib/db/access-store.ts +++ b/src/lib/db/access-store.ts @@ -1,7 +1,7 @@ import { EventEmitter } from 'events'; import { Knex } from 'knex'; import metricsHelper from '../metrics-helper'; -import { DB_TIME } from '../events'; +import { DB_TIME } from '../metric-events'; const T = { ROLE_USER: 'role_user', diff --git a/src/lib/db/addon-store.js b/src/lib/db/addon-store.js index 5d4b86a573..b890b45ca4 100644 --- a/src/lib/db/addon-store.js +++ b/src/lib/db/addon-store.js @@ -1,7 +1,7 @@ 'use strict'; const metricsHelper = require('../metrics-helper'); -const { DB_TIME } = require('../events'); +const { DB_TIME } = require('../metric-events'); const NotFoundError = require('../error/notfound-error'); const COLUMNS = [ diff --git a/src/lib/db/api-token-store.ts b/src/lib/db/api-token-store.ts index 3de5768aab..24aa6cbd90 100644 --- a/src/lib/db/api-token-store.ts +++ b/src/lib/db/api-token-store.ts @@ -1,7 +1,7 @@ import { EventEmitter } from 'events'; import { Knex } from 'knex'; import metricsHelper from '../metrics-helper'; -import { DB_TIME } from '../events'; +import { DB_TIME } from '../metric-events'; import { Logger, LogProvider } from '../logger'; import NotFoundError from '../error/notfound-error'; diff --git a/src/lib/db/client-instance-store.js b/src/lib/db/client-instance-store.js index de52b6d6f7..dfb7369d12 100644 --- a/src/lib/db/client-instance-store.js +++ b/src/lib/db/client-instance-store.js @@ -3,7 +3,7 @@ 'use strict'; const metricsHelper = require('../metrics-helper'); -const { DB_TIME } = require('../events'); +const { DB_TIME } = require('../metric-events'); const COLUMNS = [ 'app_name', diff --git a/src/lib/db/client-metrics-store.js b/src/lib/db/client-metrics-store.js index 02fce50e70..dc9599baa3 100644 --- a/src/lib/db/client-metrics-store.js +++ b/src/lib/db/client-metrics-store.js @@ -2,7 +2,7 @@ const { EventEmitter } = require('events'); const metricsHelper = require('../metrics-helper'); -const { DB_TIME } = require('../events'); +const { DB_TIME } = require('../metric-events'); const TEN_SECONDS = 10 * 1000; diff --git a/src/lib/db/event-store.ts b/src/lib/db/event-store.ts index 61cd29cda4..df29a0bd64 100644 --- a/src/lib/db/event-store.ts +++ b/src/lib/db/event-store.ts @@ -1,6 +1,6 @@ import { EventEmitter } from 'events'; import { Knex } from 'knex'; -import { DROP_FEATURES } from '../event-type'; +import { DROP_FEATURES } from '../types/events'; import { LogProvider, Logger } from '../logger'; const EVENT_COLUMNS = [ diff --git a/src/lib/db/feature-toggle-store.js b/src/lib/db/feature-toggle-store.js index 06537225ee..a50f4392aa 100644 --- a/src/lib/db/feature-toggle-store.js +++ b/src/lib/db/feature-toggle-store.js @@ -1,7 +1,7 @@ 'use strict'; const metricsHelper = require('../metrics-helper'); -const { DB_TIME } = require('../events'); +const { DB_TIME } = require('../metric-events'); const NotFoundError = require('../error/notfound-error'); const FeatureHasTagError = require('../error/feature-has-tag-error'); const { UNIQUE_CONSTRAINT_VIOLATION } = require('../error/db-error'); diff --git a/src/lib/db/reset-token-store.ts b/src/lib/db/reset-token-store.ts index d2ec10b1a0..fb9f1fcf9e 100644 --- a/src/lib/db/reset-token-store.ts +++ b/src/lib/db/reset-token-store.ts @@ -1,7 +1,7 @@ import { EventEmitter } from 'events'; import { Knex } from 'knex'; import metricsHelper from '../metrics-helper'; -import { DB_TIME } from '../events'; +import { DB_TIME } from '../metric-events'; import { Logger, LogProvider } from '../logger'; import NotFoundError from '../error/notfound-error'; diff --git a/src/lib/db/tag-store.ts b/src/lib/db/tag-store.ts index fa965dd972..beeb2b65b9 100644 --- a/src/lib/db/tag-store.ts +++ b/src/lib/db/tag-store.ts @@ -2,7 +2,7 @@ import { Knex } from 'knex'; import { EventEmitter } from 'events'; -import { DB_TIME } from '../events'; +import { DB_TIME } from '../metric-events'; import metricsHelper from '../metrics-helper'; import { LogProvider, Logger } from '../logger'; import NotFoundError from '../error/notfound-error'; diff --git a/src/lib/db/tag-type-store.ts b/src/lib/db/tag-type-store.ts index c49dd892b2..5712378f73 100644 --- a/src/lib/db/tag-type-store.ts +++ b/src/lib/db/tag-type-store.ts @@ -1,7 +1,7 @@ import { Knex } from 'knex'; import { EventEmitter } from 'events'; import { LogProvider, Logger } from '../logger'; -import { DB_TIME } from '../events'; +import { DB_TIME } from '../metric-events'; import metricsHelper from '../metrics-helper'; import NotFoundError from '../error/notfound-error'; diff --git a/src/lib/event-differ.js b/src/lib/event-differ.js index 274f99b310..a63eaec6df 100644 --- a/src/lib/event-differ.js +++ b/src/lib/event-differ.js @@ -35,7 +35,7 @@ const { USER_CREATED, USER_UPDATED, USER_DELETED, -} = require('./event-type'); +} = require('./types/events'); const strategyTypes = [ STRATEGY_CREATED, diff --git a/src/lib/event-differ.test.js b/src/lib/event-differ.test.js index 8cf027ac3e..448ca90814 100644 --- a/src/lib/event-differ.test.js +++ b/src/lib/event-differ.test.js @@ -2,7 +2,7 @@ const test = require('ava'); const eventDiffer = require('./event-differ'); -const { FEATURE_CREATED, FEATURE_UPDATED } = require('./event-type'); +const { FEATURE_CREATED, FEATURE_UPDATED } = require('./types/events'); test('should not fail if events include an unknown event type', t => { const events = [ diff --git a/src/lib/event-hook.js b/src/lib/event-hook.js index c5e8ec8c20..9c4b1a470e 100644 --- a/src/lib/event-hook.js +++ b/src/lib/event-hook.js @@ -5,7 +5,7 @@ const { FEATURE_UPDATED, FEATURE_ARCHIVED, FEATURE_REVIVED, -} = require('./event-type'); +} = require('./types/events'); exports.addEventHook = (eventHook, eventStore) => { eventStore.on(FEATURE_CREATED, data => { diff --git a/src/lib/event-hook.test.js b/src/lib/event-hook.test.js index 036cc82171..9782cea90b 100644 --- a/src/lib/event-hook.test.js +++ b/src/lib/event-hook.test.js @@ -10,7 +10,7 @@ const { FEATURE_UPDATED, FEATURE_ARCHIVED, FEATURE_REVIVED, -} = require('./event-type'); +} = require('./types/events'); const o = {}; diff --git a/src/lib/event-type.js b/src/lib/event-type.js deleted file mode 100644 index e5a10f25bf..0000000000 --- a/src/lib/event-type.js +++ /dev/null @@ -1,48 +0,0 @@ -'use strict'; - -module.exports = { - APPLICATION_CREATED: 'application-created', - FEATURE_CREATED: 'feature-created', - FEATURE_UPDATED: 'feature-updated', - FEATURE_ARCHIVED: 'feature-archived', - FEATURE_REVIVED: 'feature-revived', - FEATURE_IMPORT: 'feature-import', - FEATURE_TAGGED: 'feature-tagged', - FEATURE_TAG_IMPORT: 'feature-tag-import', - DROP_FEATURE_TAGS: 'drop-feature-tags', - FEATURE_UNTAGGED: 'feature-untagged', - FEATURE_STALE_ON: 'feature-stale-on', - FEATURE_STALE_OFF: 'feature-stale-off', - DROP_FEATURES: 'drop-features', - STRATEGY_CREATED: 'strategy-created', - STRATEGY_DELETED: 'strategy-deleted', - STRATEGY_DEPRECATED: 'strategy-deprecated', - STRATEGY_REACTIVATED: 'strategy-reactivated', - STRATEGY_UPDATED: 'strategy-updated', - STRATEGY_IMPORT: 'strategy-import', - DROP_STRATEGIES: 'drop-strategies', - CONTEXT_FIELD_CREATED: 'context-field-created', - CONTEXT_FIELD_UPDATED: 'context-field-updated', - CONTEXT_FIELD_DELETED: 'context-field-deleted', - PROJECT_CREATED: 'project-created', - PROJECT_UPDATED: 'project-updated', - PROJECT_DELETED: 'project-deleted', - PROJECT_IMPORT: 'project-import', - DROP_PROJECTS: 'drop-projects', - TAG_CREATED: 'tag-created', - TAG_DELETED: 'tag-deleted', - TAG_IMPORT: 'tag-import', - DROP_TAGS: 'drop-tags', - TAG_TYPE_CREATED: 'tag-type-created', - TAG_TYPE_DELETED: 'tag-type-deleted', - TAG_TYPE_UPDATED: 'tag-type-updated', - TAG_TYPE_IMPORT: 'tag-type-import', - DROP_TAG_TYPES: 'drop-tag-types', - ADDON_CONFIG_CREATED: 'addon-config-created', - ADDON_CONFIG_UPDATED: 'addon-config-updated', - ADDON_CONFIG_DELETED: 'addon-config-deleted', - DB_POOL_UPDATE: 'db-pool-update', - USER_CREATED: 'user-created', - USER_UPDATED: 'user-updated', - USER_DELETED: 'user-deleted', -}; diff --git a/src/lib/events.ts b/src/lib/metric-events.ts similarity index 100% rename from src/lib/events.ts rename to src/lib/metric-events.ts diff --git a/src/lib/metrics.test.js b/src/lib/metrics.test.js index c999fcab84..d533bde82a 100644 --- a/src/lib/metrics.test.js +++ b/src/lib/metrics.test.js @@ -9,8 +9,8 @@ const eventStore = new EventEmitter(); const clientMetricsStore = new EventEmitter(); const { register: prometheusRegister } = require('prom-client'); const { createTestConfig } = require('../test/config/test-config'); -const { REQUEST_TIME, DB_TIME } = require('./events'); -const { FEATURE_UPDATED } = require('./event-type'); +const { REQUEST_TIME, DB_TIME } = require('./metric-events'); +const { FEATURE_UPDATED } = require('./types/events'); const { createMetricsMonitor } = require('./metrics'); const monitor = createMetricsMonitor(); diff --git a/src/lib/metrics.ts b/src/lib/metrics.ts index 268a44bf3c..ce80ae35fc 100644 --- a/src/lib/metrics.ts +++ b/src/lib/metrics.ts @@ -1,14 +1,14 @@ import client from 'prom-client'; import EventEmitter from 'events'; import { Knex } from 'knex'; -import * as events from './events'; +import * as events from './metric-events'; import { FEATURE_CREATED, FEATURE_UPDATED, FEATURE_ARCHIVED, FEATURE_REVIVED, DB_POOL_UPDATE, -} from './event-type'; +} from './types/events'; import { IUnleashConfig } from './types/option'; import { IUnleashStores } from './types/stores'; diff --git a/src/lib/middleware/response-time-metrics.ts b/src/lib/middleware/response-time-metrics.ts index 560bf733a4..6d533c6fd9 100644 --- a/src/lib/middleware/response-time-metrics.ts +++ b/src/lib/middleware/response-time-metrics.ts @@ -1,6 +1,6 @@ import * as responseTime from 'response-time'; import EventEmitter from 'events'; -import { REQUEST_TIME } from '../events'; +import { REQUEST_TIME } from '../metric-events'; // eslint-disable-next-line @typescript-eslint/naming-convention const _responseTime = responseTime.default; diff --git a/src/lib/server-impl.ts b/src/lib/server-impl.ts index 5ca219cc15..e9ee44464a 100644 --- a/src/lib/server-impl.ts +++ b/src/lib/server-impl.ts @@ -14,7 +14,7 @@ import User from './types/user'; import permissions from './permissions'; import AuthenticationRequired from './types/authentication-required'; -import eventType from './event-type'; +import * as eventType from './types/events'; import { addEventHook } from './event-hook'; async function closeServer(opts): Promise { diff --git a/src/lib/services/addon-service.js b/src/lib/services/addon-service.js index 7f998ce44f..f407d9799a 100644 --- a/src/lib/services/addon-service.js +++ b/src/lib/services/addon-service.js @@ -3,7 +3,7 @@ const memoize = require('memoizee'); const { ValidationError } = require('joi'); const addonProvidersClasses = require('../addons'); -const events = require('../event-type'); +const events = require('../types/events'); const { addonSchema } = require('./addon-schema'); const NameExistsError = require('../error/name-exists-error'); diff --git a/src/lib/services/addon-service.test.js b/src/lib/services/addon-service.test.js index 8a32c15354..ea623b977e 100644 --- a/src/lib/services/addon-service.test.js +++ b/src/lib/services/addon-service.test.js @@ -16,7 +16,7 @@ const { ADDON_CONFIG_CREATED, ADDON_CONFIG_UPDATED, ADDON_CONFIG_DELETED, -} = require('../event-type'); +} = require('../types/events'); const MASKED_VALUE = '*****'; diff --git a/src/lib/services/client-metrics/index.js b/src/lib/services/client-metrics/index.js index a188f0d5e1..0be3158a87 100644 --- a/src/lib/services/client-metrics/index.js +++ b/src/lib/services/client-metrics/index.js @@ -7,7 +7,7 @@ const TTLList = require('./ttl-list.js'); const appSchema = require('./metrics-schema'); const { clientMetricsSchema } = require('./client-metrics-schema'); const { clientRegisterSchema } = require('./register-schema'); -const { APPLICATION_CREATED } = require('../../event-type'); +const { APPLICATION_CREATED } = require('../../types/events'); const FIVE_SECONDS = 5 * 1000; const FIVE_MINUTES = 5 * 60 * 1000; diff --git a/src/lib/services/feature-toggle-service.js b/src/lib/services/feature-toggle-service.js index 3cbb328785..97369539bc 100644 --- a/src/lib/services/feature-toggle-service.js +++ b/src/lib/services/feature-toggle-service.js @@ -1,4 +1,4 @@ -const { FEATURE_TAGGED, FEATURE_UNTAGGED } = require('../event-type'); +const { FEATURE_TAGGED, FEATURE_UNTAGGED } = require('../types/events'); const { featureSchema, nameSchema, querySchema } = require('./feature-schema'); const { tagSchema } = require('./tag-schema'); const NameExistsError = require('../error/name-exists-error'); @@ -11,7 +11,7 @@ const { FEATURE_STALE_ON, FEATURE_STALE_OFF, TAG_CREATED, -} = require('../event-type'); +} = require('../types/events'); export default class FeatureToggleService { constructor({ featureToggleStore, tagStore, eventStore }, { getLogger }) { diff --git a/src/lib/services/project-service.ts b/src/lib/services/project-service.ts index 5a895a5440..578a0aecc0 100644 --- a/src/lib/services/project-service.ts +++ b/src/lib/services/project-service.ts @@ -4,12 +4,16 @@ import ProjectStore, { IProject } from '../db/project-store'; import EventStore from '../db/event-store'; import NameExistsError from '../error/name-exists-error'; import InvalidOperationError from '../error/invalid-operation-error'; -import eventType from '../event-type'; import { nameType } from '../routes/admin-api/util'; import schema from './project-schema'; import NotFoundError from '../error/notfound-error'; import FeatureToggleStore from '../db/feature-toggle-store'; import { IRole } from '../db/access-store'; +import { + PROJECT_CREATED, + PROJECT_DELETED, + PROJECT_UPDATED, +} from '../types/events'; const getCreatedBy = (user: User) => user.email || user.username; @@ -60,7 +64,7 @@ export default class ProjectService { await this.accessService.createDefaultProjectRoles(user, data.id); await this.eventStore.store({ - type: eventType.PROJECT_CREATED, + type: PROJECT_CREATED, createdBy: getCreatedBy(user), data, }); @@ -75,7 +79,7 @@ export default class ProjectService { await this.projectStore.update(project); await this.eventStore.store({ - type: eventType.PROJECT_UPDATED, + type: PROJECT_UPDATED, createdBy: getCreatedBy(user), data: project, }); @@ -102,7 +106,7 @@ export default class ProjectService { await this.projectStore.delete(id); await this.eventStore.store({ - type: eventType.PROJECT_DELETED, + type: PROJECT_DELETED, createdBy: getCreatedBy(user), data: { id }, }); diff --git a/src/lib/services/state-service.js b/src/lib/services/state-service.js index 1c650872b3..b45c7db2e7 100644 --- a/src/lib/services/state-service.js +++ b/src/lib/services/state-service.js @@ -12,7 +12,7 @@ const { DROP_TAG_TYPES, PROJECT_IMPORT, DROP_PROJECTS, -} = require('../event-type'); +} = require('../types/events'); const { readFile, diff --git a/src/lib/services/state-service.test.js b/src/lib/services/state-service.test.js index a360bdbf8a..8c382f9be0 100644 --- a/src/lib/services/state-service.test.js +++ b/src/lib/services/state-service.test.js @@ -16,7 +16,7 @@ const { TAG_IMPORT, FEATURE_TAG_IMPORT, PROJECT_IMPORT, -} = require('../event-type'); +} = require('../types/events'); function getSetup() { const stores = store.createStores(); diff --git a/src/lib/services/tag-service.ts b/src/lib/services/tag-service.ts index e2f3d350da..89a11e5a98 100644 --- a/src/lib/services/tag-service.ts +++ b/src/lib/services/tag-service.ts @@ -2,7 +2,7 @@ import { tagSchema } from './tag-schema'; import TagStore, { ITag } from '../db/tag-store'; import EventStore from '../db/event-store'; import NameExistsError from '../error/name-exists-error'; -import { TAG_CREATED, TAG_DELETED } from '../event-type'; +import { TAG_CREATED, TAG_DELETED } from '../types/events'; import { Logger } from '../logger'; export default class TagService { diff --git a/src/lib/services/tag-type-service.ts b/src/lib/services/tag-type-service.ts index 73857ecb4a..04022f2f11 100644 --- a/src/lib/services/tag-type-service.ts +++ b/src/lib/services/tag-type-service.ts @@ -6,7 +6,7 @@ import { TAG_TYPE_CREATED, TAG_TYPE_DELETED, TAG_TYPE_UPDATED, -} from '../event-type'; +} from '../types/events'; import EventStore from '../db/event-store'; import { Logger } from '../logger'; import TagTypeStore, { ITagType } from '../db/tag-type-store'; diff --git a/src/lib/services/user-service.ts b/src/lib/services/user-service.ts index f31e9bf07e..6bb1cdd63c 100644 --- a/src/lib/services/user-service.ts +++ b/src/lib/services/user-service.ts @@ -20,7 +20,7 @@ import { IUnleashServices } from '../types/services'; import { IUnleashStores } from '../types/stores'; import PasswordUndefinedError from '../error/password-undefined'; import EventStore from '../db/event-store'; -import { USER_UPDATED, USER_CREATED, USER_DELETED } from '../event-type'; +import { USER_UPDATED, USER_CREATED, USER_DELETED } from '../types/events'; const systemUser = new User({ id: -1, username: 'system' }); diff --git a/src/lib/types/events.ts b/src/lib/types/events.ts new file mode 100644 index 0000000000..961e7b42bb --- /dev/null +++ b/src/lib/types/events.ts @@ -0,0 +1,44 @@ +export const APPLICATION_CREATED = 'application-created'; +export const FEATURE_CREATED = 'feature-created'; +export const FEATURE_UPDATED = 'feature-updated'; +export const FEATURE_ARCHIVED = 'feature-archived'; +export const FEATURE_REVIVED = 'feature-revived'; +export const FEATURE_IMPORT = 'feature-import'; +export const FEATURE_TAGGED = 'feature-tagged'; +export const FEATURE_TAG_IMPORT = 'feature-tag-import'; +export const DROP_FEATURE_TAGS = 'drop-feature-tags'; +export const FEATURE_UNTAGGED = 'feature-untagged'; +export const FEATURE_STALE_ON = 'feature-stale-on'; +export const FEATURE_STALE_OFF = 'feature-stale-off'; +export const DROP_FEATURES = 'drop-features'; +export const STRATEGY_CREATED = 'strategy-created'; +export const STRATEGY_DELETED = 'strategy-deleted'; +export const STRATEGY_DEPRECATED = 'strategy-deprecated'; +export const STRATEGY_REACTIVATED = 'strategy-reactivated'; +export const STRATEGY_UPDATED = 'strategy-updated'; +export const STRATEGY_IMPORT = 'strategy-import'; +export const DROP_STRATEGIES = 'drop-strategies'; +export const CONTEXT_FIELD_CREATED = 'context-field-created'; +export const CONTEXT_FIELD_UPDATED = 'context-field-updated'; +export const CONTEXT_FIELD_DELETED = 'context-field-deleted'; +export const PROJECT_CREATED = 'project-created'; +export const PROJECT_UPDATED = 'project-updated'; +export const PROJECT_DELETED = 'project-deleted'; +export const PROJECT_IMPORT = 'project-import'; +export const DROP_PROJECTS = 'drop-projects'; +export const TAG_CREATED = 'tag-created'; +export const TAG_DELETED = 'tag-deleted'; +export const TAG_IMPORT = 'tag-import'; +export const DROP_TAGS = 'drop-tags'; +export const TAG_TYPE_CREATED = 'tag-type-created'; +export const TAG_TYPE_DELETED = 'tag-type-deleted'; +export const TAG_TYPE_UPDATED = 'tag-type-updated'; +export const TAG_TYPE_IMPORT = 'tag-type-import'; +export const DROP_TAG_TYPES = 'drop-tag-types'; +export const ADDON_CONFIG_CREATED = 'addon-config-created'; +export const ADDON_CONFIG_UPDATED = 'addon-config-updated'; +export const ADDON_CONFIG_DELETED = 'addon-config-deleted'; +export const DB_POOL_UPDATE = 'db-pool-update'; +export const USER_CREATED = 'user-created'; +export const USER_UPDATED = 'user-updated'; +export const USER_DELETED = 'user-deleted'; diff --git a/src/test/e2e/api/admin/user-admin.e2e.test.ts b/src/test/e2e/api/admin/user-admin.e2e.test.ts index 5d5830bf76..d74e46b689 100644 --- a/src/test/e2e/api/admin/user-admin.e2e.test.ts +++ b/src/test/e2e/api/admin/user-admin.e2e.test.ts @@ -7,7 +7,11 @@ import UserStore from '../../../../lib/db/user-store'; import { AccessStore, IRole } from '../../../../lib/db/access-store'; import { RoleName } from '../../../../lib/services/access-service'; import EventStore from '../../../../lib/db/event-store'; -import eventType from '../../../../lib/event-type'; +import { + USER_CREATED, + USER_DELETED, + USER_UPDATED, +} from '../../../../lib/types/events'; let stores; let db; @@ -265,7 +269,7 @@ test.serial('generates USER_CREATED event', async t => { const events = await eventStore.getEvents(); - t.is(events[0].type, eventType.USER_CREATED); + t.is(events[0].type, USER_CREATED); t.is(events[0].data.email, email); t.is(events[0].data.name, name); t.is(events[0].data.id, body.id); @@ -280,7 +284,7 @@ test.serial('generates USER_DELETED event', async t => { await request.delete(`/api/admin/user-admin/${user.id}`); const events = await eventStore.getEvents(); - t.is(events[0].type, eventType.USER_DELETED); + t.is(events[0].type, USER_DELETED); t.is(events[0].data.id, user.id); t.is(events[0].data.email, user.email); }); @@ -305,7 +309,7 @@ test.serial('generates USER_UPDATED event', async t => { .set('Content-Type', 'application/json'); const events = await eventStore.getEvents(); - t.is(events[0].type, eventType.USER_UPDATED); + t.is(events[0].type, USER_UPDATED); t.is(events[0].data.id, body.id); t.is(events[0].data.name, 'New name'); }); diff --git a/src/test/e2e/services/client-metrics-service.e2e.test.js b/src/test/e2e/services/client-metrics-service.e2e.test.js index 1cf5ced4de..9bf578e846 100644 --- a/src/test/e2e/services/client-metrics-service.e2e.test.js +++ b/src/test/e2e/services/client-metrics-service.e2e.test.js @@ -3,7 +3,7 @@ const faker = require('faker'); const dbInit = require('../helpers/database-init'); const getLogger = require('../../fixtures/no-logger'); const ClientMetricsService = require('../../../lib/services/client-metrics'); -const { APPLICATION_CREATED } = require('../../../lib/event-type'); +const { APPLICATION_CREATED } = require('../../../lib/types/events'); let stores; let db; diff --git a/src/test/e2e/stores/event-store.e2e.test.js b/src/test/e2e/stores/event-store.e2e.test.js index 7aeac8abda..725b55d355 100644 --- a/src/test/e2e/stores/event-store.e2e.test.js +++ b/src/test/e2e/stores/event-store.e2e.test.js @@ -5,7 +5,7 @@ const sinon = require('sinon'); const { APPLICATION_CREATED, FEATURE_CREATED, -} = require('../../../lib/event-type'); +} = require('../../../lib/types/events'); const dbInit = require('../helpers/database-init'); const getLogger = require('../../fixtures/no-logger');