From a439d8f454faca294ff35700a158062de05adbbe Mon Sep 17 00:00:00 2001 From: Mihovil Ilakovac Date: Thu, 4 Jul 2024 13:57:22 +0200 Subject: [PATCH] Moves crud routes under `/crud` (#2145) --- .../templates/server/src/routes/index.js | 2 +- .../waspComplexTest/.wasp/out/.waspchecksums | 4 ++-- .../.wasp/out/sdk/wasp/client/crud/tasks.ts | 6 +++--- .../out/sdk/wasp/dist/client/crud/tasks.js | 6 +++--- .../out/sdk/wasp/dist/client/crud/tasks.js.map | 2 +- .../.wasp/out/server/src/routes/index.js | 2 +- waspc/src/Wasp/Generator/Crud/Routes.hs | 5 ++++- waspc/src/Wasp/Generator/ServerGenerator.hs | 2 ++ waspc/test/Generator/CrudTest.hs | 18 +++++++++--------- 9 files changed, 26 insertions(+), 21 deletions(-) diff --git a/waspc/data/Generator/templates/server/src/routes/index.js b/waspc/data/Generator/templates/server/src/routes/index.js index 3eef1963e..c651e5ace 100644 --- a/waspc/data/Generator/templates/server/src/routes/index.js +++ b/waspc/data/Generator/templates/server/src/routes/index.js @@ -25,7 +25,7 @@ router.use('/auth', middleware, auth) {=/ isAuthEnabled =} router.use('/{= operationsRouteInRootRouter =}', middleware, operations) {=# areThereAnyCrudRoutes =} -router.use('/', middleware, rootCrudRouter) +router.use('/{= crudRouteInRootRouter =}', middleware, rootCrudRouter) {=/ areThereAnyCrudRoutes =} {=# areThereAnyCustomApiRoutes =} // NOTE: Keep user-defined api routes last so they cannot override our routes. diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/.waspchecksums b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/.waspchecksums index c52cf1aec..fbe7d302f 100644 --- a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/.waspchecksums +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/.waspchecksums @@ -221,7 +221,7 @@ "file", "../out/sdk/wasp/client/crud/tasks.ts" ], - "4947286d60b6652052edd7bc47230481a27ce5cbaa62ed62bac727576ececa43" + "083c93c278fe261989cec8a4ea52e0dc706fae1a79aa91d6f1b8c17eca938c40" ], [ [ @@ -1061,7 +1061,7 @@ "file", "server/src/routes/index.js" ], - "b589a916a4ded52b75af42e299a506cbeb4d56ce2e87bec29f211c3e33865049" + "a13d8d47f58b1a4b60a81e31823dc8fcad0dbbbe3e09de129ae8e140f384a7b7" ], [ [ diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/client/crud/tasks.ts b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/client/crud/tasks.ts index e11d6b984..688e0d589 100644 --- a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/client/crud/tasks.ts +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/client/crud/tasks.ts @@ -9,15 +9,15 @@ import { function createCrud() { const crudGetQuery = createQuery( - 'tasks/get', + 'crud/tasks/get', ['Task'] ) const crudGetAllQuery = createQuery( - 'tasks/get-all', + 'crud/tasks/get-all', ['Task'] ) const crudCreateAction = createAction( - 'tasks/create', + 'crud/tasks/create', ['Task'] ) return { diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/client/crud/tasks.js b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/client/crud/tasks.js index 432d26a4d..31912a1d3 100644 --- a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/client/crud/tasks.js +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/client/crud/tasks.js @@ -2,9 +2,9 @@ import { createAction } from "../operations/actions/core.js"; import { createQuery } from "../operations/queries/core.js"; import { makeUseActionFor, makeUseQueryFor } from "./operationsHelpers.js"; function createCrud() { - const crudGetQuery = createQuery('tasks/get', ['Task']); - const crudGetAllQuery = createQuery('tasks/get-all', ['Task']); - const crudCreateAction = createAction('tasks/create', ['Task']); + const crudGetQuery = createQuery('crud/tasks/get', ['Task']); + const crudGetAllQuery = createQuery('crud/tasks/get-all', ['Task']); + const crudCreateAction = createAction('crud/tasks/create', ['Task']); return { get: { query: crudGetQuery, diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/client/crud/tasks.js.map b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/client/crud/tasks.js.map index 16746a973..9af645ae5 100644 --- a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/client/crud/tasks.js.map +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/sdk/wasp/dist/client/crud/tasks.js.map @@ -1 +1 @@ -{"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../../client/crud/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAO3E,SAAS,UAAU;IACf,MAAM,YAAY,GAAG,WAAW,CAC5B,WAAW,EACX,CAAC,MAAM,CAAC,CACX,CAAA;IACD,MAAM,eAAe,GAAG,WAAW,CAC/B,eAAe,EACf,CAAC,MAAM,CAAC,CACX,CAAA;IACD,MAAM,gBAAgB,GAAG,YAAY,CACjC,cAAc,EACd,CAAC,MAAM,CAAC,CACX,CAAA;IACD,OAAO;QACH,GAAG,EAAE;YACD,KAAK,EAAE,YAAY;YACnB,QAAQ,EAAE,eAAe,CAAC,YAAY,CAAC;SAC1C;QACD,MAAM,EAAE;YACJ,KAAK,EAAE,eAAe;YACtB,QAAQ,EAAE,eAAe,CAAC,eAAe,CAAC;SAC7C;QACD,MAAM,EAAE;YACJ,MAAM,EAAE,gBAAgB;YACxB,SAAS,EAAE,gBAAgB,CAAC,gBAAgB,CAAC;SAChD;KACJ,CAAA;AACL,CAAC;AAED,aAAa;AACb,MAAM,CAAC,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../../client/crud/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAO3E,SAAS,UAAU;IACf,MAAM,YAAY,GAAG,WAAW,CAC5B,gBAAgB,EAChB,CAAC,MAAM,CAAC,CACX,CAAA;IACD,MAAM,eAAe,GAAG,WAAW,CAC/B,oBAAoB,EACpB,CAAC,MAAM,CAAC,CACX,CAAA;IACD,MAAM,gBAAgB,GAAG,YAAY,CACjC,mBAAmB,EACnB,CAAC,MAAM,CAAC,CACX,CAAA;IACD,OAAO;QACH,GAAG,EAAE;YACD,KAAK,EAAE,YAAY;YACnB,QAAQ,EAAE,eAAe,CAAC,YAAY,CAAC;SAC1C;QACD,MAAM,EAAE;YACJ,KAAK,EAAE,eAAe;YACtB,QAAQ,EAAE,eAAe,CAAC,eAAe,CAAC;SAC7C;QACD,MAAM,EAAE;YACJ,MAAM,EAAE,gBAAgB;YACxB,SAAS,EAAE,gBAAgB,CAAC,gBAAgB,CAAC;SAChD;KACJ,CAAA;AACL,CAAC;AAED,aAAa;AACb,MAAM,CAAC,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC"} \ No newline at end of file diff --git a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/server/src/routes/index.js b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/server/src/routes/index.js index bd7e2b8df..9dedb5427 100644 --- a/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/server/src/routes/index.js +++ b/waspc/e2e-test/test-outputs/waspComplexTest-golden/waspComplexTest/.wasp/out/server/src/routes/index.js @@ -15,7 +15,7 @@ router.get('/', middleware, function (_req, res, _next) { router.use('/auth', middleware, auth) router.use('/operations', middleware, operations) -router.use('/', middleware, rootCrudRouter) +router.use('/crud', middleware, rootCrudRouter) // NOTE: Keep user-defined api routes last so they cannot override our routes. // Additionally, do not add middleware to these routes here. Instead, we add // it later to allow for middleware customization. diff --git a/waspc/src/Wasp/Generator/Crud/Routes.hs b/waspc/src/Wasp/Generator/Crud/Routes.hs index a36b31086..5d1558ef1 100644 --- a/waspc/src/Wasp/Generator/Crud/Routes.hs +++ b/waspc/src/Wasp/Generator/Crud/Routes.hs @@ -12,7 +12,10 @@ getRoute operation = case operation of AS.Crud.Delete -> "delete" makeFullPath :: String -> AS.Crud.CrudOperation -> String -makeFullPath crudOperationName crudOperation = intercalate "/" [getCrudOperationRouterRoute crudOperationName, getRoute crudOperation] +makeFullPath crudOperationName crudOperation = intercalate "/" [crudRouteInRootRouter, getCrudOperationRouterRoute crudOperationName, getRoute crudOperation] getCrudOperationRouterRoute :: String -> String getCrudOperationRouterRoute crudOperationName = crudOperationName + +crudRouteInRootRouter :: String +crudRouteInRootRouter = "crud" diff --git a/waspc/src/Wasp/Generator/ServerGenerator.hs b/waspc/src/Wasp/Generator/ServerGenerator.hs index a3fc640b9..7705473b6 100644 --- a/waspc/src/Wasp/Generator/ServerGenerator.hs +++ b/waspc/src/Wasp/Generator/ServerGenerator.hs @@ -39,6 +39,7 @@ import Wasp.Env (envVarsToDotEnvContent) import Wasp.Generator.Common ( ServerRootDir, ) +import qualified Wasp.Generator.Crud.Routes as CrudRoutes import Wasp.Generator.FileDraft (FileDraft, createTextFileDraft) import Wasp.Generator.Monad (Generator) import qualified Wasp.Generator.NpmDependencies as N @@ -243,6 +244,7 @@ genRoutesIndex spec = tmplData = object [ "operationsRouteInRootRouter" .= (operationsRouteInRootRouter :: String), + "crudRouteInRootRouter" .= (CrudRoutes.crudRouteInRootRouter :: String), "isAuthEnabled" .= (isAuthEnabled spec :: Bool), "areThereAnyCustomApiRoutes" .= (not . null $ AS.getApis spec), "areThereAnyCrudRoutes" .= (not . null $ AS.getCruds spec) diff --git a/waspc/test/Generator/CrudTest.hs b/waspc/test/Generator/CrudTest.hs index dcb388285..3506d2486 100644 --- a/waspc/test/Generator/CrudTest.hs +++ b/waspc/test/Generator/CrudTest.hs @@ -39,9 +39,9 @@ spec_GeneratorCrudTest = do } primaryEntityField `shouldBe` mkOperationsJson - [ "Get" .= mkOperationJson "get" "tasks/get" NotPublic, - "GetAll" .= mkOperationJson "get-all" "tasks/get-all" NotPublic, - "Create" .= mkOperationJson "create" "tasks/create" NotPublic + [ "Get" .= mkOperationJson "get" "crud/tasks/get" NotPublic, + "GetAll" .= mkOperationJson "get-all" "crud/tasks/get-all" NotPublic, + "Create" .= mkOperationJson "create" "crud/tasks/create" NotPublic ] it "returns proper JSON for public operations" $ do @@ -60,9 +60,9 @@ spec_GeneratorCrudTest = do } primaryEntityField `shouldBe` mkOperationsJson - [ "Get" .= mkOperationJson "get" "tasks/get" Public, - "GetAll" .= mkOperationJson "get-all" "tasks/get-all" NotPublic, - "Create" .= mkOperationJson "create" "tasks/create" Public + [ "Get" .= mkOperationJson "get" "crud/tasks/get" Public, + "GetAll" .= mkOperationJson "get-all" "crud/tasks/get-all" NotPublic, + "Create" .= mkOperationJson "create" "crud/tasks/create" Public ] it "allows overrides of operations" $ do @@ -91,9 +91,9 @@ spec_GeneratorCrudTest = do } primaryEntityField `shouldBe` mkOperationsJson - [ "Get" .= mkOperationJson "get" "tasks/get" Public, - "GetAll" .= mkOperationJson "get-all" "tasks/get-all" NotPublic, - "Create" .= mkOperationJson "create" "tasks/create" Public + [ "Get" .= mkOperationJson "get" "crud/tasks/get" Public, + "GetAll" .= mkOperationJson "get-all" "crud/tasks/get-all" NotPublic, + "Create" .= mkOperationJson "create" "crud/tasks/create" Public ] where crudOperationsName = "tasks"