From bfd67a5d86d4997b3602337da4f5b740105fb497 Mon Sep 17 00:00:00 2001 From: Samuel Brucksch Date: Wed, 17 Jul 2024 16:46:39 +0200 Subject: [PATCH 1/2] feat: remove `cds.validate` (#176) --- lib/resolvers/crud/create.js | 9 --------- lib/resolvers/crud/update.js | 9 --------- 2 files changed, 18 deletions(-) diff --git a/lib/resolvers/crud/create.js b/lib/resolvers/crud/create.js index 99949969..e050eac3 100644 --- a/lib/resolvers/crud/create.js +++ b/lib/resolvers/crud/create.js @@ -13,15 +13,6 @@ module.exports = async ({ req, res }, service, entity, selection) => { const entries = entriesStructureToEntityStructure(service, entity, astToEntries(input)) query.entries(entries) - if (cds.env.features.cds_validate) { - const assertOptions = { mandatories: true } - const errs = cds.validate(entries, entity, assertOptions) - if (errs) { - if (errs.length === 1) throw errs[0] - throw Object.assign(new Error('MULTIPLE_ERRORS'), { statusCode: 400, details: errs }) - } - } - const result = await service.dispatch(new GraphQLRequest({ req, res, query })) return formatResult(entity, selection, result, false) diff --git a/lib/resolvers/crud/update.js b/lib/resolvers/crud/update.js index 5823c30a..ae4d76fd 100644 --- a/lib/resolvers/crud/update.js +++ b/lib/resolvers/crud/update.js @@ -24,15 +24,6 @@ module.exports = async ({ req, res }, service, entity, selection) => { const entries = entriesStructureToEntityStructure(service, entity, astToEntries(input)) query.with(entries) - if (cds.env.features.cds_validate) { - const assertOptions = { mandatories: true } - const errs = cds.validate(entries, entity, assertOptions) - if (errs) { - if (errs.length === 1) throw errs[0] - throw Object.assign(new Error('MULTIPLE_ERRORS'), { statusCode: 400, details: errs }) - } - } - let resultBeforeUpdate const result = await service.tx(async tx => { // read needs to be done before the update, otherwise the where clause might become invalid (case that properties in where clause are updated by the mutation) From 4b0cb2a7da2e5e88bd6b27be089fa211b2027a46 Mon Sep 17 00:00:00 2001 From: Daniel Hutzel Date: Wed, 17 Jul 2024 17:23:18 +0200 Subject: [PATCH 2/2] import from @sap/cds instead of @sap/cds/lib (#169) Co-authored-by: Johannes Vogel <31311694+johannes-vogel@users.noreply.github.com> --- lib/resolvers/GraphQLRequest.js | 2 +- lib/resolvers/crud/create.js | 2 +- lib/resolvers/crud/delete.js | 2 +- lib/resolvers/crud/read.js | 2 +- lib/resolvers/crud/update.js | 2 +- test/resources/bookshop-graphql/srv/test-service.js | 2 +- test/tests/annotations.test.js | 2 +- test/tests/concurrency.test.js | 2 +- test/tests/context.test.js | 2 +- test/tests/custom-error-formatter.test.js | 2 +- test/tests/custom-handlers.test.js | 2 +- test/tests/edge-cases.test.js | 2 +- test/tests/error-handling-dev.test.js | 2 +- test/tests/error-handling-prod.test.js | 2 +- test/tests/graphiql.test.js | 2 +- test/tests/localized.test.js | 2 +- test/tests/logger-dev.test.js | 2 +- test/tests/logger-prod.test.js | 2 +- test/tests/mutations/create.test.js | 2 +- test/tests/mutations/delete.test.js | 2 +- test/tests/mutations/update.test.js | 2 +- test/tests/queries/aliases.test.js | 2 +- test/tests/queries/filter.test.js | 2 +- test/tests/queries/fragments.test.js | 2 +- test/tests/queries/meta.test.js | 2 +- test/tests/queries/orderBy.test.js | 2 +- test/tests/queries/paging-offset.test.js | 2 +- test/tests/queries/queries.test.js | 2 +- test/tests/queries/totalCount.test.js | 2 +- test/tests/queries/variables.test.js | 2 +- test/tests/request.test.js | 2 +- test/tests/types.test.js | 2 +- 32 files changed, 32 insertions(+), 32 deletions(-) diff --git a/lib/resolvers/GraphQLRequest.js b/lib/resolvers/GraphQLRequest.js index e9d2ee82..19a662af 100644 --- a/lib/resolvers/GraphQLRequest.js +++ b/lib/resolvers/GraphQLRequest.js @@ -1,4 +1,4 @@ -const cds = require('@sap/cds/lib') +const cds = require('@sap/cds') class GraphQLRequest extends cds.Request { constructor(args) { diff --git a/lib/resolvers/crud/create.js b/lib/resolvers/crud/create.js index e050eac3..efa22b3f 100644 --- a/lib/resolvers/crud/create.js +++ b/lib/resolvers/crud/create.js @@ -1,4 +1,4 @@ -const cds = require('@sap/cds/lib') +const cds = require('@sap/cds') const { INSERT } = cds.ql const { ARGS } = require('../../constants') const { getArgumentByName, astToEntries } = require('../parse/ast2cqn') diff --git a/lib/resolvers/crud/delete.js b/lib/resolvers/crud/delete.js index 5d142927..93151921 100644 --- a/lib/resolvers/crud/delete.js +++ b/lib/resolvers/crud/delete.js @@ -1,4 +1,4 @@ -const cds = require('@sap/cds/lib') +const cds = require('@sap/cds') const { DELETE } = cds.ql const { ARGS } = require('../../constants') const { getArgumentByName, astToWhere } = require('../parse/ast2cqn') diff --git a/lib/resolvers/crud/read.js b/lib/resolvers/crud/read.js index e74d7028..5b18399f 100644 --- a/lib/resolvers/crud/read.js +++ b/lib/resolvers/crud/read.js @@ -1,4 +1,4 @@ -const cds = require('@sap/cds/lib') +const cds = require('@sap/cds') const { SELECT } = cds.ql const { ARGS, CONNECTION_FIELDS } = require('../../constants') const { getArgumentByName, astToColumns, astToWhere, astToOrderBy, astToLimit } = require('../parse/ast2cqn') diff --git a/lib/resolvers/crud/update.js b/lib/resolvers/crud/update.js index ae4d76fd..0a8da06b 100644 --- a/lib/resolvers/crud/update.js +++ b/lib/resolvers/crud/update.js @@ -1,4 +1,4 @@ -const cds = require('@sap/cds/lib') +const cds = require('@sap/cds') const { SELECT, UPDATE } = cds.ql const { ARGS } = require('../../constants') const { getArgumentByName, astToColumns, astToWhere, astToEntries } = require('../parse/ast2cqn') diff --git a/test/resources/bookshop-graphql/srv/test-service.js b/test/resources/bookshop-graphql/srv/test-service.js index a01d54de..cc840280 100644 --- a/test/resources/bookshop-graphql/srv/test-service.js +++ b/test/resources/bookshop-graphql/srv/test-service.js @@ -1,4 +1,4 @@ -const cds = require('@sap/cds/lib') +const cds = require('@sap/cds') module.exports = cds.service.impl(srv => { const { Foo } = srv.entities diff --git a/test/tests/annotations.test.js b/test/tests/annotations.test.js index 696174ba..629ef23f 100644 --- a/test/tests/annotations.test.js +++ b/test/tests/annotations.test.js @@ -1,5 +1,5 @@ describe('graphql - annotations', () => { - const cds = require('@sap/cds/lib') + const cds = require('@sap/cds') const path = require('path') const { gql } = require('../util') diff --git a/test/tests/concurrency.test.js b/test/tests/concurrency.test.js index 4ae5d9e6..cd5bdf31 100644 --- a/test/tests/concurrency.test.js +++ b/test/tests/concurrency.test.js @@ -1,5 +1,5 @@ describe('graphql - resolver concurrency', () => { - const cds = require('@sap/cds/lib') + const cds = require('@sap/cds') const path = require('path') const { gql } = require('../util') diff --git a/test/tests/context.test.js b/test/tests/context.test.js index e3ca3e08..3636dd0c 100644 --- a/test/tests/context.test.js +++ b/test/tests/context.test.js @@ -1,5 +1,5 @@ describe('graphql - context is set', () => { - const cds = require('@sap/cds/lib') + const cds = require('@sap/cds') const path = require('path') const { gql } = require('../util') diff --git a/test/tests/custom-error-formatter.test.js b/test/tests/custom-error-formatter.test.js index ed114e14..41a19207 100644 --- a/test/tests/custom-error-formatter.test.js +++ b/test/tests/custom-error-formatter.test.js @@ -1,5 +1,5 @@ describe('graphql - custom error formatter function', () => { - const cds = require('@sap/cds/lib') + const cds = require('@sap/cds') const path = require('path') const { gql } = require('../util') diff --git a/test/tests/custom-handlers.test.js b/test/tests/custom-handlers.test.js index bb2c1577..6925539e 100644 --- a/test/tests/custom-handlers.test.js +++ b/test/tests/custom-handlers.test.js @@ -1,5 +1,5 @@ describe('graphql - custom handlers', () => { - const cds = require('@sap/cds/lib') + const cds = require('@sap/cds') const path = require('path') const { gql } = require('../util') diff --git a/test/tests/edge-cases.test.js b/test/tests/edge-cases.test.js index aa06f593..fa778dac 100644 --- a/test/tests/edge-cases.test.js +++ b/test/tests/edge-cases.test.js @@ -1,5 +1,5 @@ describe('graphql - edge cases', () => { - const cds = require('@sap/cds/lib') + const cds = require('@sap/cds') const path = require('path') const { gql } = require('../util') diff --git a/test/tests/error-handling-dev.test.js b/test/tests/error-handling-dev.test.js index 4471179a..87f3184b 100644 --- a/test/tests/error-handling-dev.test.js +++ b/test/tests/error-handling-dev.test.js @@ -1,5 +1,5 @@ describe('graphql - error handling in development', () => { - const cds = require('@sap/cds/lib') + const cds = require('@sap/cds') const path = require('path') const { gql } = require('../util') diff --git a/test/tests/error-handling-prod.test.js b/test/tests/error-handling-prod.test.js index 060152ac..b57f35c9 100644 --- a/test/tests/error-handling-prod.test.js +++ b/test/tests/error-handling-prod.test.js @@ -1,6 +1,6 @@ describe('graphql - error handling in production', () => { process.env.NODE_ENV = 'production' - const cds = require('@sap/cds/lib') + const cds = require('@sap/cds') const path = require('path') const { gql } = require('../util') diff --git a/test/tests/graphiql.test.js b/test/tests/graphiql.test.js index 0784f561..4bd25a6a 100644 --- a/test/tests/graphiql.test.js +++ b/test/tests/graphiql.test.js @@ -1,5 +1,5 @@ describe('graphql - GraphiQL', () => { - const cds = require('@sap/cds/lib') + const cds = require('@sap/cds') const path = require('path') const { gql } = require('../util') diff --git a/test/tests/localized.test.js b/test/tests/localized.test.js index d1f012e5..e45896dd 100644 --- a/test/tests/localized.test.js +++ b/test/tests/localized.test.js @@ -1,5 +1,5 @@ describe('graphql - queries with localized data', () => { - const cds = require('@sap/cds/lib') + const cds = require('@sap/cds') const path = require('path') const { gql } = require('../util') diff --git a/test/tests/logger-dev.test.js b/test/tests/logger-dev.test.js index 4385a419..ce15683b 100644 --- a/test/tests/logger-dev.test.js +++ b/test/tests/logger-dev.test.js @@ -1,5 +1,5 @@ describe('graphql - query logging in development', () => { - const cds = require('@sap/cds/lib') + const cds = require('@sap/cds') const path = require('path') const { gql } = require('../util') const util = require('util') diff --git a/test/tests/logger-prod.test.js b/test/tests/logger-prod.test.js index c67bcd97..e771c938 100644 --- a/test/tests/logger-prod.test.js +++ b/test/tests/logger-prod.test.js @@ -1,6 +1,6 @@ describe('graphql - query logging with sanitization in production', () => { process.env.NODE_ENV = 'production' - const cds = require('@sap/cds/lib') + const cds = require('@sap/cds') const path = require('path') const { gql } = require('../util') const util = require('util') diff --git a/test/tests/mutations/create.test.js b/test/tests/mutations/create.test.js index ee5a04cb..269403fb 100644 --- a/test/tests/mutations/create.test.js +++ b/test/tests/mutations/create.test.js @@ -1,5 +1,5 @@ describe('graphql - create mutations', () => { - const cds = require('@sap/cds/lib') + const cds = require('@sap/cds') const path = require('path') const { gql } = require('../../util') diff --git a/test/tests/mutations/delete.test.js b/test/tests/mutations/delete.test.js index 50bfbc1b..53887f50 100644 --- a/test/tests/mutations/delete.test.js +++ b/test/tests/mutations/delete.test.js @@ -1,5 +1,5 @@ describe('graphql - delete mutations', () => { - const cds = require('@sap/cds/lib') + const cds = require('@sap/cds') const path = require('path') const { gql } = require('../../util') diff --git a/test/tests/mutations/update.test.js b/test/tests/mutations/update.test.js index 00112db6..b4a9398b 100644 --- a/test/tests/mutations/update.test.js +++ b/test/tests/mutations/update.test.js @@ -1,5 +1,5 @@ describe('graphql - update mutations', () => { - const cds = require('@sap/cds/lib') + const cds = require('@sap/cds') const path = require('path') const { gql } = require('../../util') diff --git a/test/tests/queries/aliases.test.js b/test/tests/queries/aliases.test.js index 2945d34c..3a5dcc8a 100644 --- a/test/tests/queries/aliases.test.js +++ b/test/tests/queries/aliases.test.js @@ -1,5 +1,5 @@ describe('graphql - aliases', () => { - const cds = require('@sap/cds/lib') + const cds = require('@sap/cds') const path = require('path') const { gql } = require('../../util') diff --git a/test/tests/queries/filter.test.js b/test/tests/queries/filter.test.js index fa8b4b55..c5f08c7f 100644 --- a/test/tests/queries/filter.test.js +++ b/test/tests/queries/filter.test.js @@ -1,5 +1,5 @@ describe('graphql - filter', () => { - const cds = require('@sap/cds/lib') + const cds = require('@sap/cds') const path = require('path') const { gql } = require('../../util') diff --git a/test/tests/queries/fragments.test.js b/test/tests/queries/fragments.test.js index 8eda167d..84523c69 100644 --- a/test/tests/queries/fragments.test.js +++ b/test/tests/queries/fragments.test.js @@ -1,5 +1,5 @@ describe('graphql - fragments', () => { - const cds = require('@sap/cds/lib') + const cds = require('@sap/cds') const path = require('path') const { gql } = require('../../util') diff --git a/test/tests/queries/meta.test.js b/test/tests/queries/meta.test.js index 02c1a00b..504700a3 100644 --- a/test/tests/queries/meta.test.js +++ b/test/tests/queries/meta.test.js @@ -1,5 +1,5 @@ describe('graphql - meta fields', () => { - const cds = require('@sap/cds/lib') + const cds = require('@sap/cds') const path = require('path') const { gql } = require('../../util') diff --git a/test/tests/queries/orderBy.test.js b/test/tests/queries/orderBy.test.js index 7c6e49f4..43c4c51a 100644 --- a/test/tests/queries/orderBy.test.js +++ b/test/tests/queries/orderBy.test.js @@ -1,5 +1,5 @@ describe('graphql - orderBy', () => { - const cds = require('@sap/cds/lib') + const cds = require('@sap/cds') const path = require('path') const { gql } = require('../../util') diff --git a/test/tests/queries/paging-offset.test.js b/test/tests/queries/paging-offset.test.js index 67ef4f97..9f3d89db 100644 --- a/test/tests/queries/paging-offset.test.js +++ b/test/tests/queries/paging-offset.test.js @@ -1,5 +1,5 @@ describe('graphql - offset-based paging', () => { - const cds = require('@sap/cds/lib') + const cds = require('@sap/cds') const path = require('path') const { gql } = require('../../util') diff --git a/test/tests/queries/queries.test.js b/test/tests/queries/queries.test.js index 0f1de2ad..d9a5b1d5 100644 --- a/test/tests/queries/queries.test.js +++ b/test/tests/queries/queries.test.js @@ -1,5 +1,5 @@ describe('graphql - queries', () => { - const cds = require('@sap/cds/lib') + const cds = require('@sap/cds') const path = require('path') const { gql } = require('../../util') diff --git a/test/tests/queries/totalCount.test.js b/test/tests/queries/totalCount.test.js index 07f75366..ba4c1ac8 100644 --- a/test/tests/queries/totalCount.test.js +++ b/test/tests/queries/totalCount.test.js @@ -1,5 +1,5 @@ describe('graphql - queries with totalCount', () => { - const cds = require('@sap/cds/lib') + const cds = require('@sap/cds') const path = require('path') const { gql } = require('../../util') diff --git a/test/tests/queries/variables.test.js b/test/tests/queries/variables.test.js index 91bfbf94..4c286a70 100644 --- a/test/tests/queries/variables.test.js +++ b/test/tests/queries/variables.test.js @@ -1,5 +1,5 @@ describe('graphql - variables', () => { - const cds = require('@sap/cds/lib') + const cds = require('@sap/cds') const path = require('path') const { gql } = require('../../util') diff --git a/test/tests/request.test.js b/test/tests/request.test.js index 07841efd..42b57a46 100644 --- a/test/tests/request.test.js +++ b/test/tests/request.test.js @@ -1,5 +1,5 @@ describe('graphql - cds.request', () => { - const cds = require('@sap/cds/lib') + const cds = require('@sap/cds') const path = require('path') const { gql } = require('../util') diff --git a/test/tests/types.test.js b/test/tests/types.test.js index 5efd5c0b..53ae3315 100644 --- a/test/tests/types.test.js +++ b/test/tests/types.test.js @@ -40,7 +40,7 @@ const _getMutationAndVariablesForFieldWithVariable = (field, value) => ({ }) describe('graphql - types parsing and validation', () => { - const cds = require('@sap/cds/lib') + const cds = require('@sap/cds') const path = require('path') const fs = require('fs')