From cdc21a572935d33bdd7103d4afa3ccca7a3da154 Mon Sep 17 00:00:00 2001 From: Mariya Yordanova Date: Fri, 28 Apr 2023 11:31:42 +0200 Subject: [PATCH 1/4] Filter is mandatory for update und delete mutation --- CHANGELOG.md | 1 + lib/schema/mutation.js | 4 +- test/schemas/bookshop-graphql.gql | 88 +++++++------------ .../edge-cases/field-named-localized.gql | 8 +- .../model-structure/composition-of-aspect.gql | 8 +- test/schemas/types.gql | 4 +- test/tests/mutations/delete.test.js | 2 +- test/tests/mutations/update.test.js | 2 +- 8 files changed, 47 insertions(+), 70 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7f30d2c0..a05bc19f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 + Wrap only objects (i.e. not primitive types or arrays) returned by custom handlers in arrays in create, read, and update resolvers + Delete mutations return the length of an array that is returned by a `DELETE` custom handler or 1 if a single object is returned - Don't generate fields for key elements in update input objects +- Update and delete mutations have mandatory `filter` field ### Fixed diff --git a/lib/schema/mutation.js b/lib/schema/mutation.js index b6e12f56..f91c07cd 100644 --- a/lib/schema/mutation.js +++ b/lib/schema/mutation.js @@ -77,7 +77,7 @@ module.exports = cache => { if (!filterInputObjectType || !updateInputObjectType) return const args = { - [ARGS.filter]: { type: filterInputObjectType }, + [ARGS.filter]: { type: new GraphQLNonNull(filterInputObjectType) }, [ARGS.input]: { type: new GraphQLNonNull(updateInputObjectType) } } return { type: new GraphQLList(entityObjectType), args } @@ -89,7 +89,7 @@ module.exports = cache => { if (!filterInputObjectType) return const args = { - [ARGS.filter]: { type: filterInputObjectType } + [ARGS.filter]: { type: new GraphQLNonNull(filterInputObjectType) } } return { type: GraphQLInt, args } } diff --git a/test/schemas/bookshop-graphql.gql b/test/schemas/bookshop-graphql.gql index 91a49c22..464690ea 100644 --- a/test/schemas/bookshop-graphql.gql +++ b/test/schemas/bookshop-graphql.gql @@ -118,10 +118,10 @@ type AdminService_Authors_input { input: [AdminService_Authors_C]! ): [AdminService_Authors] delete( - filter: [AdminService_Authors_filter] + filter: [AdminService_Authors_filter]! ): Int update( - filter: [AdminService_Authors_filter] + filter: [AdminService_Authors_filter]! input: AdminService_Authors_U! ): [AdminService_Authors] } @@ -237,10 +237,10 @@ type AdminService_Books_input { input: [AdminService_Books_C]! ): [AdminService_Books] delete( - filter: [AdminService_Books_filter] + filter: [AdminService_Books_filter]! ): Int update( - filter: [AdminService_Books_filter] + filter: [AdminService_Books_filter]! input: AdminService_Books_U! ): [AdminService_Books] } @@ -297,10 +297,10 @@ type AdminService_Books_texts_input { input: [AdminService_Books_texts_C]! ): [AdminService_Books_texts] delete( - filter: [AdminService_Books_texts_filter] + filter: [AdminService_Books_texts_filter]! ): Int update( - filter: [AdminService_Books_texts_filter] + filter: [AdminService_Books_texts_filter]! input: AdminService_Books_texts_U! ): [AdminService_Books_texts] } @@ -362,10 +362,10 @@ type AdminService_Chapters_input { input: [AdminService_Chapters_C]! ): [AdminService_Chapters] delete( - filter: [AdminService_Chapters_filter] + filter: [AdminService_Chapters_filter]! ): Int update( - filter: [AdminService_Chapters_filter] + filter: [AdminService_Chapters_filter]! input: AdminService_Chapters_U! ): [AdminService_Chapters] } @@ -383,7 +383,6 @@ input AdminService_Chapters_orderBy { type AdminService_Currencies { code: String descr: String - minorUnit: Int16 name: String symbol: String texts( @@ -397,7 +396,6 @@ type AdminService_Currencies { input AdminService_Currencies_C { code: String descr: String - minorUnit: Int16 name: String symbol: String texts: [AdminService_Currencies_texts_C] @@ -405,7 +403,6 @@ input AdminService_Currencies_C { input AdminService_Currencies_U { descr: String - minorUnit: Int16 name: String symbol: String texts: [AdminService_Currencies_texts_C] @@ -419,7 +416,6 @@ type AdminService_Currencies_connection { input AdminService_Currencies_filter { code: [String_filter] descr: [String_filter] - minorUnit: [Int16_filter] name: [String_filter] symbol: [String_filter] } @@ -429,10 +425,10 @@ type AdminService_Currencies_input { input: [AdminService_Currencies_C]! ): [AdminService_Currencies] delete( - filter: [AdminService_Currencies_filter] + filter: [AdminService_Currencies_filter]! ): Int update( - filter: [AdminService_Currencies_filter] + filter: [AdminService_Currencies_filter]! input: AdminService_Currencies_U! ): [AdminService_Currencies] } @@ -440,7 +436,6 @@ type AdminService_Currencies_input { input AdminService_Currencies_orderBy { code: SortDirection descr: SortDirection - minorUnit: SortDirection name: SortDirection symbol: SortDirection } @@ -481,10 +476,10 @@ type AdminService_Currencies_texts_input { input: [AdminService_Currencies_texts_C]! ): [AdminService_Currencies_texts] delete( - filter: [AdminService_Currencies_texts_filter] + filter: [AdminService_Currencies_texts_filter]! ): Int update( - filter: [AdminService_Currencies_texts_filter] + filter: [AdminService_Currencies_texts_filter]! input: AdminService_Currencies_texts_U! ): [AdminService_Currencies_texts] } @@ -552,10 +547,10 @@ type AdminService_Genres_input { input: [AdminService_Genres_C]! ): [AdminService_Genres] delete( - filter: [AdminService_Genres_filter] + filter: [AdminService_Genres_filter]! ): Int update( - filter: [AdminService_Genres_filter] + filter: [AdminService_Genres_filter]! input: AdminService_Genres_U! ): [AdminService_Genres] } @@ -603,10 +598,10 @@ type AdminService_Genres_texts_input { input: [AdminService_Genres_texts_C]! ): [AdminService_Genres_texts] delete( - filter: [AdminService_Genres_texts_filter] + filter: [AdminService_Genres_texts_filter]! ): Int update( - filter: [AdminService_Genres_texts_filter] + filter: [AdminService_Genres_texts_filter]! input: AdminService_Genres_texts_U! ): [AdminService_Genres_texts] } @@ -777,10 +772,10 @@ type CatalogService_Books_input { input: [CatalogService_Books_C]! ): [CatalogService_Books] delete( - filter: [CatalogService_Books_filter] + filter: [CatalogService_Books_filter]! ): Int update( - filter: [CatalogService_Books_filter] + filter: [CatalogService_Books_filter]! input: CatalogService_Books_U! ): [CatalogService_Books] } @@ -835,10 +830,10 @@ type CatalogService_Books_texts_input { input: [CatalogService_Books_texts_C]! ): [CatalogService_Books_texts] delete( - filter: [CatalogService_Books_texts_filter] + filter: [CatalogService_Books_texts_filter]! ): Int update( - filter: [CatalogService_Books_texts_filter] + filter: [CatalogService_Books_texts_filter]! input: CatalogService_Books_texts_U! ): [CatalogService_Books_texts] } @@ -900,10 +895,10 @@ type CatalogService_Chapters_input { input: [CatalogService_Chapters_C]! ): [CatalogService_Chapters] delete( - filter: [CatalogService_Chapters_filter] + filter: [CatalogService_Chapters_filter]! ): Int update( - filter: [CatalogService_Chapters_filter] + filter: [CatalogService_Chapters_filter]! input: CatalogService_Chapters_U! ): [CatalogService_Chapters] } @@ -921,7 +916,6 @@ input CatalogService_Chapters_orderBy { type CatalogService_Currencies { code: String descr: String - minorUnit: Int16 name: String symbol: String texts( @@ -935,7 +929,6 @@ type CatalogService_Currencies { input CatalogService_Currencies_C { code: String descr: String - minorUnit: Int16 name: String symbol: String texts: [CatalogService_Currencies_texts_C] @@ -943,7 +936,6 @@ input CatalogService_Currencies_C { input CatalogService_Currencies_U { descr: String - minorUnit: Int16 name: String symbol: String texts: [CatalogService_Currencies_texts_C] @@ -957,7 +949,6 @@ type CatalogService_Currencies_connection { input CatalogService_Currencies_filter { code: [String_filter] descr: [String_filter] - minorUnit: [Int16_filter] name: [String_filter] symbol: [String_filter] } @@ -967,10 +958,10 @@ type CatalogService_Currencies_input { input: [CatalogService_Currencies_C]! ): [CatalogService_Currencies] delete( - filter: [CatalogService_Currencies_filter] + filter: [CatalogService_Currencies_filter]! ): Int update( - filter: [CatalogService_Currencies_filter] + filter: [CatalogService_Currencies_filter]! input: CatalogService_Currencies_U! ): [CatalogService_Currencies] } @@ -978,7 +969,6 @@ type CatalogService_Currencies_input { input CatalogService_Currencies_orderBy { code: SortDirection descr: SortDirection - minorUnit: SortDirection name: SortDirection symbol: SortDirection } @@ -1019,10 +1009,10 @@ type CatalogService_Currencies_texts_input { input: [CatalogService_Currencies_texts_C]! ): [CatalogService_Currencies_texts] delete( - filter: [CatalogService_Currencies_texts_filter] + filter: [CatalogService_Currencies_texts_filter]! ): Int update( - filter: [CatalogService_Currencies_texts_filter] + filter: [CatalogService_Currencies_texts_filter]! input: CatalogService_Currencies_texts_U! ): [CatalogService_Currencies_texts] } @@ -1090,10 +1080,10 @@ type CatalogService_Genres_input { input: [CatalogService_Genres_C]! ): [CatalogService_Genres] delete( - filter: [CatalogService_Genres_filter] + filter: [CatalogService_Genres_filter]! ): Int update( - filter: [CatalogService_Genres_filter] + filter: [CatalogService_Genres_filter]! input: CatalogService_Genres_U! ): [CatalogService_Genres] } @@ -1141,10 +1131,10 @@ type CatalogService_Genres_texts_input { input: [CatalogService_Genres_texts_C]! ): [CatalogService_Genres_texts] delete( - filter: [CatalogService_Genres_texts_filter] + filter: [CatalogService_Genres_texts_filter]! ): Int update( - filter: [CatalogService_Genres_texts_filter] + filter: [CatalogService_Genres_texts_filter]! input: CatalogService_Genres_texts_U! ): [CatalogService_Genres_texts] } @@ -1239,10 +1229,10 @@ type CatalogService_ListOfBooks_input { input: [CatalogService_ListOfBooks_C]! ): [CatalogService_ListOfBooks] delete( - filter: [CatalogService_ListOfBooks_filter] + filter: [CatalogService_ListOfBooks_filter]! ): Int update( - filter: [CatalogService_ListOfBooks_filter] + filter: [CatalogService_ListOfBooks_filter]! input: CatalogService_ListOfBooks_U! ): [CatalogService_ListOfBooks] } @@ -1299,20 +1289,6 @@ input Decimal_filter { ne: [Decimal] } -""" -The `Int16` scalar type represents 16-bit non-fractional signed whole numeric values. Int16 can represent values between -(2^15) and 2^15 - 1. -""" -scalar Int16 - -input Int16_filter { - eq: [Int16] - ge: [Int16] - gt: [Int16] - le: [Int16] - lt: [Int16] - ne: [Int16] -} - input Int_filter { eq: [Int] ge: [Int] diff --git a/test/schemas/edge-cases/field-named-localized.gql b/test/schemas/edge-cases/field-named-localized.gql index 83cc5fc1..7edbea38 100644 --- a/test/schemas/edge-cases/field-named-localized.gql +++ b/test/schemas/edge-cases/field-named-localized.gql @@ -46,10 +46,10 @@ type FieldNamedLocalizedService_Root_input { input: [FieldNamedLocalizedService_Root_C]! ): [FieldNamedLocalizedService_Root] delete( - filter: [FieldNamedLocalizedService_Root_filter] + filter: [FieldNamedLocalizedService_Root_filter]! ): Int update( - filter: [FieldNamedLocalizedService_Root_filter] + filter: [FieldNamedLocalizedService_Root_filter]! input: FieldNamedLocalizedService_Root_U! ): [FieldNamedLocalizedService_Root] } @@ -99,10 +99,10 @@ type FieldNamedLocalizedService_localized_input { input: [FieldNamedLocalizedService_localized_C]! ): [FieldNamedLocalizedService_localized] delete( - filter: [FieldNamedLocalizedService_localized_filter] + filter: [FieldNamedLocalizedService_localized_filter]! ): Int update( - filter: [FieldNamedLocalizedService_localized_filter] + filter: [FieldNamedLocalizedService_localized_filter]! input: FieldNamedLocalizedService_localized_U! ): [FieldNamedLocalizedService_localized] } diff --git a/test/schemas/model-structure/composition-of-aspect.gql b/test/schemas/model-structure/composition-of-aspect.gql index 74efed0f..fe97ffab 100644 --- a/test/schemas/model-structure/composition-of-aspect.gql +++ b/test/schemas/model-structure/composition-of-aspect.gql @@ -56,7 +56,7 @@ type CompositionOfAspectService_Books_chapters_input { input: [CompositionOfAspectService_Books_chapters_C]! ): [CompositionOfAspectService_Books_chapters] delete( - filter: [CompositionOfAspectService_Books_chapters_filter] + filter: [CompositionOfAspectService_Books_chapters_filter]! ): Int } @@ -78,10 +78,10 @@ type CompositionOfAspectService_Books_input { input: [CompositionOfAspectService_Books_C]! ): [CompositionOfAspectService_Books] delete( - filter: [CompositionOfAspectService_Books_filter] + filter: [CompositionOfAspectService_Books_filter]! ): Int update( - filter: [CompositionOfAspectService_Books_filter] + filter: [CompositionOfAspectService_Books_filter]! input: CompositionOfAspectService_Books_U! ): [CompositionOfAspectService_Books] } @@ -112,7 +112,7 @@ type CompositionOfAspectService_Books_reviews_input { input: [CompositionOfAspectService_Books_reviews_C]! ): [CompositionOfAspectService_Books_reviews] delete( - filter: [CompositionOfAspectService_Books_reviews_filter] + filter: [CompositionOfAspectService_Books_reviews_filter]! ): Int } diff --git a/test/schemas/types.gql b/test/schemas/types.gql index ce4f718c..fe8f8fae 100644 --- a/test/schemas/types.gql +++ b/test/schemas/types.gql @@ -269,10 +269,10 @@ type TypesService_MyEntity_input { input: [TypesService_MyEntity_C]! ): [TypesService_MyEntity] delete( - filter: [TypesService_MyEntity_filter] + filter: [TypesService_MyEntity_filter]! ): Int update( - filter: [TypesService_MyEntity_filter] + filter: [TypesService_MyEntity_filter]! input: TypesService_MyEntity_U! ): [TypesService_MyEntity] } diff --git a/test/tests/mutations/delete.test.js b/test/tests/mutations/delete.test.js index 5747bea1..1beca61f 100644 --- a/test/tests/mutations/delete.test.js +++ b/test/tests/mutations/delete.test.js @@ -131,7 +131,7 @@ describe('graphql - delete mutations', () => { mutation { AdminService { Books { - delete + delete(filter: {}) } } } diff --git a/test/tests/mutations/update.test.js b/test/tests/mutations/update.test.js index adcedc8b..826799e7 100644 --- a/test/tests/mutations/update.test.js +++ b/test/tests/mutations/update.test.js @@ -140,7 +140,7 @@ describe('graphql - update mutations', () => { mutation ($input: AdminService_Books_U!) { AdminService { Books { - update(input: $input) { + update(filter: {}, input: $input) { title stock } From d8e1b774705005d0bfbeb3dd4a7fbfec8150ed9b Mon Sep 17 00:00:00 2001 From: Mariya Yordanova Date: Fri, 28 Apr 2023 11:45:17 +0200 Subject: [PATCH 2/4] revert --- test/schemas/bookshop-graphql.gql | 90 +++++++++++++++++++------------ 1 file changed, 57 insertions(+), 33 deletions(-) diff --git a/test/schemas/bookshop-graphql.gql b/test/schemas/bookshop-graphql.gql index 464690ea..fe7cf624 100644 --- a/test/schemas/bookshop-graphql.gql +++ b/test/schemas/bookshop-graphql.gql @@ -118,10 +118,10 @@ type AdminService_Authors_input { input: [AdminService_Authors_C]! ): [AdminService_Authors] delete( - filter: [AdminService_Authors_filter]! + filter: [AdminService_Authors_filter] ): Int update( - filter: [AdminService_Authors_filter]! + filter: [AdminService_Authors_filter] input: AdminService_Authors_U! ): [AdminService_Authors] } @@ -237,10 +237,10 @@ type AdminService_Books_input { input: [AdminService_Books_C]! ): [AdminService_Books] delete( - filter: [AdminService_Books_filter]! + filter: [AdminService_Books_filter] ): Int update( - filter: [AdminService_Books_filter]! + filter: [AdminService_Books_filter] input: AdminService_Books_U! ): [AdminService_Books] } @@ -297,10 +297,10 @@ type AdminService_Books_texts_input { input: [AdminService_Books_texts_C]! ): [AdminService_Books_texts] delete( - filter: [AdminService_Books_texts_filter]! + filter: [AdminService_Books_texts_filter] ): Int update( - filter: [AdminService_Books_texts_filter]! + filter: [AdminService_Books_texts_filter] input: AdminService_Books_texts_U! ): [AdminService_Books_texts] } @@ -362,10 +362,10 @@ type AdminService_Chapters_input { input: [AdminService_Chapters_C]! ): [AdminService_Chapters] delete( - filter: [AdminService_Chapters_filter]! + filter: [AdminService_Chapters_filter] ): Int update( - filter: [AdminService_Chapters_filter]! + filter: [AdminService_Chapters_filter] input: AdminService_Chapters_U! ): [AdminService_Chapters] } @@ -383,6 +383,7 @@ input AdminService_Chapters_orderBy { type AdminService_Currencies { code: String descr: String + minorUnit: Int16 name: String symbol: String texts( @@ -396,6 +397,7 @@ type AdminService_Currencies { input AdminService_Currencies_C { code: String descr: String + minorUnit: Int16 name: String symbol: String texts: [AdminService_Currencies_texts_C] @@ -403,6 +405,7 @@ input AdminService_Currencies_C { input AdminService_Currencies_U { descr: String + minorUnit: Int16 name: String symbol: String texts: [AdminService_Currencies_texts_C] @@ -416,6 +419,7 @@ type AdminService_Currencies_connection { input AdminService_Currencies_filter { code: [String_filter] descr: [String_filter] + minorUnit: [Int16_filter] name: [String_filter] symbol: [String_filter] } @@ -425,10 +429,10 @@ type AdminService_Currencies_input { input: [AdminService_Currencies_C]! ): [AdminService_Currencies] delete( - filter: [AdminService_Currencies_filter]! + filter: [AdminService_Currencies_filter] ): Int update( - filter: [AdminService_Currencies_filter]! + filter: [AdminService_Currencies_filter] input: AdminService_Currencies_U! ): [AdminService_Currencies] } @@ -436,6 +440,7 @@ type AdminService_Currencies_input { input AdminService_Currencies_orderBy { code: SortDirection descr: SortDirection + minorUnit: SortDirection name: SortDirection symbol: SortDirection } @@ -476,10 +481,10 @@ type AdminService_Currencies_texts_input { input: [AdminService_Currencies_texts_C]! ): [AdminService_Currencies_texts] delete( - filter: [AdminService_Currencies_texts_filter]! + filter: [AdminService_Currencies_texts_filter] ): Int update( - filter: [AdminService_Currencies_texts_filter]! + filter: [AdminService_Currencies_texts_filter] input: AdminService_Currencies_texts_U! ): [AdminService_Currencies_texts] } @@ -547,10 +552,10 @@ type AdminService_Genres_input { input: [AdminService_Genres_C]! ): [AdminService_Genres] delete( - filter: [AdminService_Genres_filter]! + filter: [AdminService_Genres_filter] ): Int update( - filter: [AdminService_Genres_filter]! + filter: [AdminService_Genres_filter] input: AdminService_Genres_U! ): [AdminService_Genres] } @@ -598,10 +603,10 @@ type AdminService_Genres_texts_input { input: [AdminService_Genres_texts_C]! ): [AdminService_Genres_texts] delete( - filter: [AdminService_Genres_texts_filter]! + filter: [AdminService_Genres_texts_filter] ): Int update( - filter: [AdminService_Genres_texts_filter]! + filter: [AdminService_Genres_texts_filter] input: AdminService_Genres_texts_U! ): [AdminService_Genres_texts] } @@ -772,10 +777,10 @@ type CatalogService_Books_input { input: [CatalogService_Books_C]! ): [CatalogService_Books] delete( - filter: [CatalogService_Books_filter]! + filter: [CatalogService_Books_filter] ): Int update( - filter: [CatalogService_Books_filter]! + filter: [CatalogService_Books_filter] input: CatalogService_Books_U! ): [CatalogService_Books] } @@ -830,10 +835,10 @@ type CatalogService_Books_texts_input { input: [CatalogService_Books_texts_C]! ): [CatalogService_Books_texts] delete( - filter: [CatalogService_Books_texts_filter]! + filter: [CatalogService_Books_texts_filter] ): Int update( - filter: [CatalogService_Books_texts_filter]! + filter: [CatalogService_Books_texts_filter] input: CatalogService_Books_texts_U! ): [CatalogService_Books_texts] } @@ -895,10 +900,10 @@ type CatalogService_Chapters_input { input: [CatalogService_Chapters_C]! ): [CatalogService_Chapters] delete( - filter: [CatalogService_Chapters_filter]! + filter: [CatalogService_Chapters_filter] ): Int update( - filter: [CatalogService_Chapters_filter]! + filter: [CatalogService_Chapters_filter] input: CatalogService_Chapters_U! ): [CatalogService_Chapters] } @@ -916,6 +921,7 @@ input CatalogService_Chapters_orderBy { type CatalogService_Currencies { code: String descr: String + minorUnit: Int16 name: String symbol: String texts( @@ -929,6 +935,7 @@ type CatalogService_Currencies { input CatalogService_Currencies_C { code: String descr: String + minorUnit: Int16 name: String symbol: String texts: [CatalogService_Currencies_texts_C] @@ -936,6 +943,7 @@ input CatalogService_Currencies_C { input CatalogService_Currencies_U { descr: String + minorUnit: Int16 name: String symbol: String texts: [CatalogService_Currencies_texts_C] @@ -949,6 +957,7 @@ type CatalogService_Currencies_connection { input CatalogService_Currencies_filter { code: [String_filter] descr: [String_filter] + minorUnit: [Int16_filter] name: [String_filter] symbol: [String_filter] } @@ -958,10 +967,10 @@ type CatalogService_Currencies_input { input: [CatalogService_Currencies_C]! ): [CatalogService_Currencies] delete( - filter: [CatalogService_Currencies_filter]! + filter: [CatalogService_Currencies_filter] ): Int update( - filter: [CatalogService_Currencies_filter]! + filter: [CatalogService_Currencies_filter] input: CatalogService_Currencies_U! ): [CatalogService_Currencies] } @@ -969,6 +978,7 @@ type CatalogService_Currencies_input { input CatalogService_Currencies_orderBy { code: SortDirection descr: SortDirection + minorUnit: SortDirection name: SortDirection symbol: SortDirection } @@ -1009,10 +1019,10 @@ type CatalogService_Currencies_texts_input { input: [CatalogService_Currencies_texts_C]! ): [CatalogService_Currencies_texts] delete( - filter: [CatalogService_Currencies_texts_filter]! + filter: [CatalogService_Currencies_texts_filter] ): Int update( - filter: [CatalogService_Currencies_texts_filter]! + filter: [CatalogService_Currencies_texts_filter] input: CatalogService_Currencies_texts_U! ): [CatalogService_Currencies_texts] } @@ -1080,10 +1090,10 @@ type CatalogService_Genres_input { input: [CatalogService_Genres_C]! ): [CatalogService_Genres] delete( - filter: [CatalogService_Genres_filter]! + filter: [CatalogService_Genres_filter] ): Int update( - filter: [CatalogService_Genres_filter]! + filter: [CatalogService_Genres_filter] input: CatalogService_Genres_U! ): [CatalogService_Genres] } @@ -1131,10 +1141,10 @@ type CatalogService_Genres_texts_input { input: [CatalogService_Genres_texts_C]! ): [CatalogService_Genres_texts] delete( - filter: [CatalogService_Genres_texts_filter]! + filter: [CatalogService_Genres_texts_filter] ): Int update( - filter: [CatalogService_Genres_texts_filter]! + filter: [CatalogService_Genres_texts_filter] input: CatalogService_Genres_texts_U! ): [CatalogService_Genres_texts] } @@ -1229,10 +1239,10 @@ type CatalogService_ListOfBooks_input { input: [CatalogService_ListOfBooks_C]! ): [CatalogService_ListOfBooks] delete( - filter: [CatalogService_ListOfBooks_filter]! + filter: [CatalogService_ListOfBooks_filter] ): Int update( - filter: [CatalogService_ListOfBooks_filter]! + filter: [CatalogService_ListOfBooks_filter] input: CatalogService_ListOfBooks_U! ): [CatalogService_ListOfBooks] } @@ -1289,6 +1299,20 @@ input Decimal_filter { ne: [Decimal] } +""" +The `Int16` scalar type represents 16-bit non-fractional signed whole numeric values. Int16 can represent values between -(2^15) and 2^15 - 1. +""" +scalar Int16 + +input Int16_filter { + eq: [Int16] + ge: [Int16] + gt: [Int16] + le: [Int16] + lt: [Int16] + ne: [Int16] +} + input Int_filter { eq: [Int] ge: [Int] @@ -1337,4 +1361,4 @@ input Timestamp_filter { le: [Timestamp] lt: [Timestamp] ne: [Timestamp] -} +} \ No newline at end of file From be3ab411d1747f0ab65e62425e233442c3bb4193 Mon Sep 17 00:00:00 2001 From: mariayord Date: Fri, 28 Apr 2023 11:46:57 +0200 Subject: [PATCH 3/4] Update CHANGELOG.md Co-authored-by: Marcel Schwarz --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a05bc19f..5a4274e9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 + Wrap only objects (i.e. not primitive types or arrays) returned by custom handlers in arrays in create, read, and update resolvers + Delete mutations return the length of an array that is returned by a `DELETE` custom handler or 1 if a single object is returned - Don't generate fields for key elements in update input objects -- Update and delete mutations have mandatory `filter` field +- Update and delete mutations have mandatory `filter` argument ### Fixed From a9e8b9ba611964ea34dbe0f3986c6b88590b7cd7 Mon Sep 17 00:00:00 2001 From: Mariya Yordanova Date: Fri, 28 Apr 2023 11:49:18 +0200 Subject: [PATCH 4/4] fix --- test/schemas/bookshop-graphql.gql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/schemas/bookshop-graphql.gql b/test/schemas/bookshop-graphql.gql index fe7cf624..91a49c22 100644 --- a/test/schemas/bookshop-graphql.gql +++ b/test/schemas/bookshop-graphql.gql @@ -1361,4 +1361,4 @@ input Timestamp_filter { le: [Timestamp] lt: [Timestamp] ne: [Timestamp] -} \ No newline at end of file +}