use of com.linkedin.restli.server.BatchFinderResult in project rest.li by linkedin.
the class BatchFinderResource method searchGreetings.
@BatchFinder(value = "searchGreetings", batchParam = "criteria")
public BatchFinderResult<GreetingCriteria, Greeting, Empty> searchGreetings(@PagingContextParam PagingContext context, @QueryParam("criteria") GreetingCriteria[] criteria, @QueryParam("message") String message) {
BatchFinderResult<GreetingCriteria, Greeting, Empty> batchFinderResult = new BatchFinderResult<>();
for (GreetingCriteria currentCriteria : criteria) {
if (currentCriteria.getId() == 1L) {
// on success
CollectionResult<Greeting, Empty> c1 = new CollectionResult<>(Arrays.asList(g1), 1);
batchFinderResult.putResult(currentCriteria, c1);
} else if (currentCriteria.getId() == 2L) {
CollectionResult<Greeting, Empty> c2 = new CollectionResult<>(Arrays.asList(g2), 1);
batchFinderResult.putResult(currentCriteria, c2);
} else if (currentCriteria.getId() == 100L) {
// on error: to construct error response for test
batchFinderResult.putError(currentCriteria, new RestLiServiceException(HttpStatus.S_404_NOT_FOUND, "Fail to find Greeting!"));
}
}
return batchFinderResult;
}
use of com.linkedin.restli.server.BatchFinderResult in project rest.li by linkedin.
the class AssociationsResource method searchMessages.
@BatchFinder(value = "searchMessages", batchParam = "criteria")
public BatchFinderResult<MessageCriteria, Message, Empty> searchMessages(@AssocKeyParam("src") String src, @PagingContextParam PagingContext context, @QueryParam("criteria") MessageCriteria[] criteria) {
BatchFinderResult<MessageCriteria, Message, Empty> batchFinderResult = new BatchFinderResult<>();
for (MessageCriteria currentCriteria : criteria) {
if (currentCriteria.getTone() == Tone.FRIENDLY) {
// on success
CollectionResult<Message, Empty> cr = new CollectionResult<>(Arrays.asList(m1, m2), 2);
batchFinderResult.putResult(currentCriteria, cr);
} else {
// on error: to construct error response for test
batchFinderResult.putError(currentCriteria, new RestLiServiceException(HttpStatus.S_404_NOT_FOUND, "Failed to find message!"));
}
}
return batchFinderResult;
}
use of com.linkedin.restli.server.BatchFinderResult in project rest.li by linkedin.
the class BatchGreetingResource method searchGreetings.
@BatchFinder(value = "searchGreetings", batchParam = "criteria")
@MaxBatchSize(value = 2, validate = true)
public BatchFinderResult<GreetingCriteria, Greeting, Empty> searchGreetings(@QueryParam("criteria") GreetingCriteria[] criteria) {
BatchFinderResult<GreetingCriteria, Greeting, Empty> batchFinderResult = new BatchFinderResult<>();
for (GreetingCriteria currentCriteria : criteria) {
if (currentCriteria.getId() == 1l) {
CollectionResult<Greeting, Empty> c1 = new CollectionResult<>(Arrays.asList(GREETING_ONE), 1);
batchFinderResult.putResult(currentCriteria, c1);
} else if (currentCriteria.getId() == 2l) {
CollectionResult<Greeting, Empty> c2 = new CollectionResult<>(Arrays.asList(GREETING_TWO), 1);
batchFinderResult.putResult(currentCriteria, c2);
}
}
return batchFinderResult;
}
use of com.linkedin.restli.server.BatchFinderResult in project rest.li by linkedin.
the class ValidationDemoResource method searchValidationDemos.
@BatchFinder(value = "searchValidationDemos", batchParam = "criteria")
public BatchFinderResult<ValidationDemoCriteria, ValidationDemo, Empty> searchValidationDemos(@PagingContextParam PagingContext context, @QueryParam("criteria") ValidationDemoCriteria[] criteria, @ValidatorParam RestLiDataValidator validator) {
BatchFinderResult<ValidationDemoCriteria, ValidationDemo, Empty> batchFinderResult = new BatchFinderResult<>();
for (ValidationDemoCriteria currentCriteria : criteria) {
List<ValidationDemo> validationDemos = new ArrayList<>();
// Generate entities that are missing stringB fields
for (int i = 0; i < 3; i++) {
ValidationDemo.UnionFieldWithInlineRecord union = new ValidationDemo.UnionFieldWithInlineRecord();
union.setMyEnum(myEnum.FOOFOO);
validationDemos.add(new ValidationDemo().setStringA("valueA").setIntA(currentCriteria.getIntA()).setUnionFieldWithInlineRecord(union));
}
// Validate outgoing data
for (ValidationDemo entity : validationDemos) {
ValidationResult result = validator.validateOutput(entity);
check(!result.isValid());
check(result.getMessages().toString().contains("/stringB :: field is required but not found"));
}
// Fix entities
for (ValidationDemo validationDemo : validationDemos) {
validationDemo.setStringB("valueB");
}
// Validate again
for (ValidationDemo entity : validationDemos) {
ValidationResult result = validator.validateOutput(entity);
check(result.isValid());
}
CollectionResult<ValidationDemo, Empty> cr = new CollectionResult<>(validationDemos, validationDemos.size());
batchFinderResult.putResult(currentCriteria, cr);
}
return batchFinderResult;
}
Aggregations