Skip to content

Commit cafc5c8

Browse files
committed
Switch from id to uuid in locale
1 parent 09279cf commit cafc5c8

File tree

82 files changed

+811
-409
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+811
-409
lines changed

registry-public/src/RegistryLib/Api/Resource/Locale/LocaleDTO.hs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
module RegistryLib.Api.Resource.Locale.LocaleDTO where
22

33
import Data.Time
4+
import qualified Data.UUID as U
45
import GHC.Generics
56

67
import RegistryLib.Model.Organization.OrganizationSimple
78

89
data LocaleDTO = LocaleDTO
9-
{ lId :: String
10+
{ uuid :: U.UUID
1011
, name :: String
1112
, description :: String
1213
, code :: String

registry-server/src/Registry/Api/Handler/Locale/Detail_Bundle_GET.hs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,22 +10,24 @@ import Registry.Model.Context.BaseContext
1010
import Registry.Service.Locale.Bundle.LocaleBundleService
1111
import Shared.Common.Api.Handler.Common
1212
import Shared.Common.Model.Context.TransactionState
13+
import Shared.Coordinate.Api.Resource.Coordinate.CoordinateJM ()
14+
import Shared.Coordinate.Model.Coordinate.Coordinate
1315

1416
type Detail_Bundle_GET =
1517
Header "Authorization" String
1618
:> "locales"
17-
:> Capture "documentTemplateId" String
19+
:> Capture "id" Coordinate
1820
:> "bundle"
1921
:> Get '[OctetStream] (Headers '[Header "x-trace-uuid" String, Header "Content-Disposition" String] FileStreamLazy)
2022

2123
detail_bundle_GET
2224
:: Maybe String
23-
-> String
25+
-> Coordinate
2426
-> BaseContextM (Headers '[Header "x-trace-uuid" String, Header "Content-Disposition" String] FileStreamLazy)
25-
detail_bundle_GET mTokenHeader tmlId =
27+
detail_bundle_GET mTokenHeader coordinate =
2628
getAuthServiceExecutor mTokenHeader $ \runInAuthService ->
2729
runInAuthService NoTransaction $ do
28-
zipFile <- exportBundle tmlId
30+
zipFile <- exportBundle coordinate
2931
let cdHeader = "attachment;filename=\"locale.zip\""
3032
traceUuid <- asks traceUuid
3133
return . addHeader (U.toString traceUuid) . addHeader cdHeader . FileStreamLazy $ zipFile

registry-server/src/Registry/Api/Handler/Locale/Detail_GET.hs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,13 @@ import Registry.Model.Context.ContextLenses ()
1010
import Registry.Service.Locale.LocaleService
1111
import Shared.Common.Api.Handler.Common
1212
import Shared.Common.Model.Context.TransactionState
13+
import Shared.Coordinate.Api.Resource.Coordinate.CoordinateJM ()
14+
import Shared.Coordinate.Model.Coordinate.Coordinate
1315

1416
type Detail_GET =
1517
"locales"
16-
:> Capture "documentTemplateId" String
18+
:> Capture "id" Coordinate
1719
:> Get '[SafeJSON] (Headers '[Header "x-trace-uuid" String] LocaleDetailDTO)
1820

19-
detail_GET :: String -> BaseContextM (Headers '[Header "x-trace-uuid" String] LocaleDetailDTO)
20-
detail_GET tmlId = runInUnauthService NoTransaction $ addTraceUuidHeader =<< getLocaleById tmlId
21+
detail_GET :: Coordinate -> BaseContextM (Headers '[Header "x-trace-uuid" String] LocaleDetailDTO)
22+
detail_GET coordinate = runInUnauthService NoTransaction $ addTraceUuidHeader =<< getLocaleByCoordinate coordinate

registry-server/src/Registry/Api/Handler/Swagger/Api.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import Shared.Common.Api.Resource.Common.FileSM ()
2424
import Shared.Common.Api.Resource.Common.SemVer2TupleSM ()
2525
import Shared.Common.Api.Resource.Info.InfoSM ()
2626
import Shared.Component.Api.Resource.Component.ComponentSM ()
27+
import Shared.Coordinate.Api.Resource.Coordinate.CoordinateSM ()
2728
import Shared.DocumentTemplate.Api.Resource.DocumentTemplate.DocumentTemplateSM ()
2829
import Shared.DocumentTemplate.Api.Resource.DocumentTemplateBundle.DocumentTemplateBundleSM ()
2930
import Shared.KnowledgeModel.Api.Resource.KnowledgeModel.Bundle.KnowledgeModelBundlePackageSM ()

registry-server/src/Registry/Api/Resource/Locale/LocaleDTO.hs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
module Registry.Api.Resource.Locale.LocaleDTO where
22

33
import Data.Time
4+
import qualified Data.UUID as U
45
import GHC.Generics
56

67
import RegistryLib.Model.Organization.OrganizationSimple
78

89
data LocaleDTO = LocaleDTO
9-
{ lId :: String
10+
{ uuid :: U.UUID
1011
, name :: String
1112
, description :: String
1213
, code :: String

registry-server/src/Registry/Api/Resource/Locale/LocaleDetailDTO.hs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
module Registry.Api.Resource.Locale.LocaleDetailDTO where
22

33
import Data.Time
4+
import qualified Data.UUID as U
45
import GHC.Generics
56

67
import RegistryLib.Model.Organization.OrganizationSimple
78

89
data LocaleDetailDTO = LocaleDetailDTO
9-
{ lId :: String
10+
{ uuid :: U.UUID
1011
, name :: String
1112
, description :: String
1213
, code :: String

registry-server/src/Registry/Database/Migration/Development/Locale/LocaleMigration.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,6 @@ runMigration = do
1717

1818
runS3Migration :: AppContextM ()
1919
runS3Migration = do
20-
_ <- putLocale localeNl.lId "wizard.json" localeNlContent
21-
_ <- putLocale localeNl.lId "mail.po" localeNlContent
20+
_ <- putLocale localeNl.uuid "wizard.json" localeNlContent
21+
_ <- putLocale localeNl.uuid "mail.po" localeNlContent
2222
return ()

registry-server/src/Registry/Database/Migration/Development/Locale/LocaleSchemaMigration.hs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ createTables = do
2121
let sql =
2222
"CREATE TABLE locale \
2323
\( \
24-
\ id varchar NOT NULL, \
24+
\ uuid uuid NOT NULL, \
2525
\ name varchar NOT NULL, \
2626
\ description varchar NOT NULL, \
2727
\ code varchar NOT NULL, \
@@ -36,9 +36,9 @@ createTables = do
3636
\ tenant_uuid uuid NOT NULL, \
3737
\ created_at timestamptz NOT NULL, \
3838
\ updated_at timestamptz NOT NULL, \
39-
\ CONSTRAINT locale_pk PRIMARY KEY (id) \
39+
\ CONSTRAINT locale_pk PRIMARY KEY (uuid) \
4040
\); \
4141
\ \
42-
\CREATE UNIQUE INDEX locale_uuid_uindex ON locale (id);"
42+
\CREATE UNIQUE INDEX locale_organization_id_locale_id_version_uindex ON locale (organization_id, locale_id, version);"
4343
let action conn = execute_ conn sql
4444
runDB action

registry-server/src/Registry/Database/Migration/Production/Migration.hs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import qualified Registry.Database.Migration.Production.Migration_0013_jsonb.Mig
1818
import qualified Registry.Database.Migration.Production.Migration_0014_documentTemplateMetamodel.Migration as M_0014
1919
import qualified Registry.Database.Migration.Production.Migration_0015_knowledgeModelRefactor.Migration as M_0015
2020
import qualified Registry.Database.Migration.Production.Migration_0016_project.Migration as M_0016
21+
import qualified Registry.Database.Migration.Production.Migration_0017_locale.Migration as M_0017
2122

2223
migrationDefinitions :: [MigrationDefinition]
2324
migrationDefinitions =
@@ -37,4 +38,5 @@ migrationDefinitions =
3738
, M_0014.definition
3839
, M_0015.definition
3940
, M_0016.definition
41+
, M_0017.definition
4042
]
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
module Registry.Database.Migration.Production.Migration_0017_locale.Migration (
2+
definition,
3+
) where
4+
5+
import Control.Monad.Logger
6+
import Control.Monad.Reader (liftIO)
7+
import Data.Pool (Pool, withResource)
8+
import Database.PostgreSQL.Migration.Entity
9+
import Database.PostgreSQL.Simple
10+
11+
definition = (meta, migrate)
12+
13+
meta = MigrationMeta {mmNumber = 17, mmName = "Locale Refactor", mmDescription = "Switch from id to uuid"}
14+
15+
migrate :: Pool Connection -> LoggingT IO (Maybe Error)
16+
migrate dbPool = do
17+
let sql =
18+
"DROP INDEX locale_uuid_uindex; \
19+
\ALTER TABLE locale DROP CONSTRAINT locale_pk; \
20+
\ALTER TABLE locale RENAME COLUMN id TO uuid; \
21+
\ALTER TABLE locale ALTER COLUMN uuid TYPE uuid USING gen_random_uuid(); \
22+
\ALTER TABLE locale ADD CONSTRAINT locale_pk PRIMARY KEY (uuid); \
23+
\CREATE UNIQUE INDEX locale_organization_id_locale_id_version_uindex ON locale (organization_id, locale_id, version);"
24+
let action conn = execute_ conn sql
25+
liftIO $ withResource dbPool action
26+
return Nothing

0 commit comments

Comments
 (0)