From bdaf9a2fba647b1ac5131a724dc0aa4f7f619b75 Mon Sep 17 00:00:00 2001 From: Bhavika Gianey Date: Wed, 5 Apr 2023 17:25:39 +0530 Subject: [PATCH 1/3] include affected items in error object --- packages/api-graphql/src/GraphQLAPI.ts | 28 +++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/packages/api-graphql/src/GraphQLAPI.ts b/packages/api-graphql/src/GraphQLAPI.ts index a5de75bdd96..ed152d8127a 100644 --- a/packages/api-graphql/src/GraphQLAPI.ts +++ b/packages/api-graphql/src/GraphQLAPI.ts @@ -302,6 +302,8 @@ export class GraphQLAPIClass { variables, }; + console.log('printing', body); + const init = Object.assign( { headers, @@ -324,7 +326,6 @@ export class GraphQLAPIClass { errors: [error], }; } - let response; try { response = await this._api.post(endpoint, init); @@ -340,10 +341,31 @@ export class GraphQLAPIClass { errors: [new GraphQLError(err.message, null, null, null, null, err)], }; } - const { errors } = response; - if (errors && errors.length) { + let queryfield = null; + const null_values = errors.find(obj => { + if (obj.message.includes('Cannot return null for non-nullable type')) { + queryfield = obj.path[0]; + return true; + } + }); + if (null_values && queryfield) { + const data_values = response.data[queryfield].items; + const query = + body.query.slice(0, body.query.indexOf('id') + 3) + + '}' + + body.query.slice(body.query.lastIndexOf('nextToken')); + init.body.query = query; + response.items = []; + const new_response = await this._api.post(endpoint, init); + let compare_values = new_response.data[queryfield].items; + for (let index = 0; index < data_values.length; index++) { + if (!data_values[index]) { + response.items.push(compare_values[index]); + } + } + } throw response; } From b96fafc425302e43331d48e070831c924fb41993 Mon Sep 17 00:00:00 2001 From: Bhavika Gianey Date: Wed, 5 Apr 2023 17:28:48 +0530 Subject: [PATCH 2/3] include affected items in errors object --- packages/api-graphql/src/GraphQLAPI.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/api-graphql/src/GraphQLAPI.ts b/packages/api-graphql/src/GraphQLAPI.ts index ed152d8127a..5d1463e7ff2 100644 --- a/packages/api-graphql/src/GraphQLAPI.ts +++ b/packages/api-graphql/src/GraphQLAPI.ts @@ -302,8 +302,6 @@ export class GraphQLAPIClass { variables, }; - console.log('printing', body); - const init = Object.assign( { headers, From 2b5fad67bfa87fe3983c48f9da5c535ea50cf93a Mon Sep 17 00:00:00 2001 From: Bhavika Gianey Date: Fri, 7 Apr 2023 15:45:51 +0530 Subject: [PATCH 3/3] typescript-coverage resolved --- packages/api-graphql/src/GraphQLAPI.ts | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/packages/api-graphql/src/GraphQLAPI.ts b/packages/api-graphql/src/GraphQLAPI.ts index 5d1463e7ff2..324db3cc4a1 100644 --- a/packages/api-graphql/src/GraphQLAPI.ts +++ b/packages/api-graphql/src/GraphQLAPI.ts @@ -341,24 +341,25 @@ export class GraphQLAPIClass { } const { errors } = response; if (errors && errors.length) { - let queryfield = null; - const null_values = errors.find(obj => { + let queryfield: string | null; + const null_values = errors.find((obj): boolean => { if (obj.message.includes('Cannot return null for non-nullable type')) { - queryfield = obj.path[0]; + queryfield = obj.path[0] as string; return true; } }); if (null_values && queryfield) { - const data_values = response.data[queryfield].items; - const query = + const data_values: Array = response.data[queryfield].items; + const query: string = body.query.slice(0, body.query.indexOf('id') + 3) + '}' + body.query.slice(body.query.lastIndexOf('nextToken')); init.body.query = query; response.items = []; const new_response = await this._api.post(endpoint, init); - let compare_values = new_response.data[queryfield].items; - for (let index = 0; index < data_values.length; index++) { + const compare_values: Array = + new_response.data[queryfield].items; + for (let index: number = 0; index < data_values.length; index++) { if (!data_values[index]) { response.items.push(compare_values[index]); }