Skip to content

Commit 8096877

Browse files
committed
Add KM metamodel migration 19 to v20
1 parent e72db76 commit 8096877

File tree

4 files changed

+42
-1
lines changed

4 files changed

+42
-1
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
module Shared.KnowledgeModel.Constant.KnowledgeModel where
22

33
knowledgeModelMetamodelVersion :: Int
4-
knowledgeModelMetamodelVersion = 19
4+
knowledgeModelMetamodelVersion = 20

wizard-server/src/Wizard/Service/KnowledgeModel/Metamodel/Migrator/EventMigrator.hs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import qualified Wizard.Service.KnowledgeModel.Metamodel.Migrator.Migrations.Mig
2424
import qualified Wizard.Service.KnowledgeModel.Metamodel.Migrator.Migrations.Migration0016 as M16
2525
import qualified Wizard.Service.KnowledgeModel.Metamodel.Migrator.Migrations.Migration0017 as M17
2626
import qualified Wizard.Service.KnowledgeModel.Metamodel.Migrator.Migrations.Migration0018 as M18
27+
import qualified Wizard.Service.KnowledgeModel.Metamodel.Migrator.Migrations.Migration0019 as M19
2728
import Wizard.Service.KnowledgeModel.Metamodel.Migrator.Migrations.MigrationContext (MigrationContext)
2829

2930
type Version = Int
@@ -50,6 +51,7 @@ migrations =
5051
, (16, M16.migrateEventValue)
5152
, (17, M17.migrateEventValue)
5253
, (18, M18.migrateEventValue)
54+
, (19, M19.migrateEventValue)
5355
]
5456

5557
migrate :: MigrationContext -> Version -> Version -> Value -> Either String [Value]
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
module Wizard.Service.KnowledgeModel.Metamodel.Migrator.Migrations.Migration0019 (
2+
migrateEventValue,
3+
) where
4+
5+
import Data.Aeson
6+
import qualified Data.Aeson.KeyMap as KM
7+
import qualified Data.Text as T
8+
9+
import Wizard.Service.KnowledgeModel.Metamodel.Migrator.Migrations.MigrationContext
10+
import Wizard.Service.KnowledgeModel.Metamodel.Migrator.Migrations.Utils
11+
12+
-- Migration #0019 (KM v19 -> v20)
13+
-- - remove:
14+
-- - AddApiLegacyIntegrationEvent, EditApiLegacyIntegrationEvent
15+
-- - AddWidgetIntegrationEvent, EditWidgetIntegrationEvent
16+
migrateEventValue :: MigrationContext -> Value -> Either String [Value]
17+
migrateEventValue _ = Right . migrate
18+
19+
migrateIntegrationEvent :: Object -> [Object]
20+
migrateIntegrationEvent obj =
21+
case KM.lookup "integrationType" obj of
22+
(Just (String "ApiLegacyIntegration")) -> []
23+
(Just (String "WidgetIntegration")) -> []
24+
_ -> [obj]
25+
26+
runMigration :: T.Text -> Object -> [Object]
27+
runMigration "AddIntegrationEvent" obj = migrateIntegrationEvent obj
28+
runMigration "EditIntegrationEvent" obj = migrateIntegrationEvent obj
29+
runMigration _ obj = [obj]
30+
31+
migrate :: Value -> [Value]
32+
migrate = migrateByEventTypeList runMigration

wizard-server/src/Wizard/Service/KnowledgeModel/Metamodel/Migrator/Migrations/Utils.hs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,13 @@ migrateByEventType migrationFn v@(Object obj) =
4040
_ -> v
4141
migrateByEventType _ v = v
4242

43+
migrateByEventTypeList :: (T.Text -> Object -> [Object]) -> Value -> [Value]
44+
migrateByEventTypeList migrationFn v@(Object obj) =
45+
case KM.lookup "eventType" obj of
46+
(Just (String eventType)) -> Object <$> (migrationFn eventType obj)
47+
_ -> [v]
48+
migrateByEventTypeList _ v = [v]
49+
4350
unchangedValue :: Value
4451
unchangedValue = Object (KM.singleton "changed" (Bool False))
4552

0 commit comments

Comments
 (0)