fix: Google sheets Bulk insert of empty array returns an error (#9725)
* fix/8924-Bulk Insert throwing error on empty data in google sheets new1 * fix/8924 Error in bulk insert empty data * fix/8924 Code review fix for Google Sheet Bulk insert error * fix/8924 Code review fix for Google Sheet Bulk insert error * Fixed code review comments * Methodconfig data changes since only empty Mono is being tested
This commit is contained in:
parent
2fac770530
commit
ec755d261c
|
|
@ -83,7 +83,13 @@ public class BulkAppendMethod implements Method {
|
||||||
|
|
||||||
List<RowObject> rowObjectListFromBody = null;
|
List<RowObject> rowObjectListFromBody = null;
|
||||||
try {
|
try {
|
||||||
rowObjectListFromBody = this.getRowObjectListFromBody(this.objectMapper.readTree(methodConfig.getRowObjects()));
|
JsonNode body = this.objectMapper.readTree(methodConfig.getRowObjects());
|
||||||
|
|
||||||
|
if ( body.isEmpty()) {
|
||||||
|
return Mono.empty();
|
||||||
|
}
|
||||||
|
|
||||||
|
rowObjectListFromBody = this.getRowObjectListFromBody(body);
|
||||||
} catch (JsonProcessingException e) {
|
} catch (JsonProcessingException e) {
|
||||||
// Should never enter here
|
// Should never enter here
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -241,7 +241,19 @@ public class GoogleSheetsPlugin extends BasePlugin {
|
||||||
System.out.println(e.getMessage());
|
System.out.println(e.getMessage());
|
||||||
return Mono.just(errorResult);
|
return Mono.just(errorResult);
|
||||||
});
|
});
|
||||||
});
|
})
|
||||||
|
.switchIfEmpty(handleEmptyMono());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method to handle empty Mono
|
||||||
|
* @return Mono<ActionExecutionResult>
|
||||||
|
*/
|
||||||
|
private Mono<ActionExecutionResult> handleEmptyMono() {
|
||||||
|
final ActionExecutionResult result = new ActionExecutionResult();
|
||||||
|
result.setIsExecutionSuccess(true);
|
||||||
|
result.setBody(objectMapper.valueToTree(Map.of("message", "No operation was performed")));
|
||||||
|
return Mono.just(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,58 @@
|
||||||
|
package com.external.config;
|
||||||
|
|
||||||
|
import com.appsmith.external.models.*;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import org.junit.BeforeClass;
|
||||||
|
import org.junit.Test;
|
||||||
|
import reactor.core.publisher.Mono;
|
||||||
|
import reactor.test.StepVerifier;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class BulkAppendMethodTest {
|
||||||
|
final ObjectMapper objectMapper = new ObjectMapper();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* To Test if it passes the empty Mono criteria,
|
||||||
|
* else it should fail
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void testBulkAppendHandleEmptyMonoExecutePrerequisites() {
|
||||||
|
String[] testDataArray = {"[]", ""};
|
||||||
|
|
||||||
|
for(int i=0; i<testDataArray.length; i++) {
|
||||||
|
BulkAppendMethod bulkAppend = new BulkAppendMethod(objectMapper);
|
||||||
|
Mono<Object> monoTest = bulkAppend.executePrerequisites(getMethodConfigObject(testDataArray[i]), getOAuthObject());
|
||||||
|
|
||||||
|
StepVerifier.create(monoTest)
|
||||||
|
.expectComplete()
|
||||||
|
.verify();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Simulated oAuth2 object, just to bypass few case.
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private OAuth2 getOAuthObject(){
|
||||||
|
OAuth2 oAuth2 = new OAuth2();
|
||||||
|
oAuth2.setAuthenticationResponse(new AuthenticationResponse() );
|
||||||
|
oAuth2.getAuthenticationResponse().setToken("welcome123");
|
||||||
|
return oAuth2;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Simulated MethodConfig object with testable data.
|
||||||
|
* @param rowObject
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private MethodConfig getMethodConfigObject(String rowObject){
|
||||||
|
List properties = new ArrayList<Property>();
|
||||||
|
MethodConfig methodConfig = new MethodConfig(properties);
|
||||||
|
|
||||||
|
methodConfig.setRowObjects(rowObject);
|
||||||
|
|
||||||
|
return methodConfig;
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user