Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions sdk/formrecognizer/azure-ai-formrecognizer/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Release History

## 1.0.0-beta.5 (Unreleased)
- Add support for context passing.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: let's keep all past tense


### Key Bug Fixes
- Fixed `getFields()` to preserve service side ordering of fields.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import com.azure.core.exception.HttpResponseException;
import com.azure.core.http.HttpPipeline;
import com.azure.core.http.rest.SimpleResponse;
import com.azure.core.util.Context;
import com.azure.core.util.CoreUtils;
import com.azure.core.util.logging.ClientLogger;
import com.azure.core.util.polling.LongRunningOperationStatus;
Expand Down Expand Up @@ -118,13 +119,20 @@ public final class FormRecognizerAsyncClient {
@ServiceMethod(returns = ReturnType.COLLECTION)
public PollerFlux<OperationResult, List<RecognizedForm>>
beginRecognizeCustomFormsFromUrl(String formUrl, String modelId, RecognizeOptions recognizeOptions) {
return beginRecognizeCustomFormsFromUrl(formUrl, modelId, recognizeOptions, Context.NONE);
}

PollerFlux<OperationResult, List<RecognizedForm>>
beginRecognizeCustomFormsFromUrl(String formUrl, String modelId, RecognizeOptions recognizeOptions,
Context context) {
try {
recognizeOptions = getRecognizeOptionsProperties(recognizeOptions);
return new PollerFlux<OperationResult, List<RecognizedForm>>(
recognizeOptions.getPollInterval(),
analyzeFormActivationOperation(formUrl, modelId, recognizeOptions.isIncludeFieldElements()),
createAnalyzeFormPollOperation(modelId),
(activationResponse, context) -> Mono.error(new RuntimeException("Cancellation is not supported")),
(activationResponse, pollingContext) ->
Mono.error(new RuntimeException("Cancellation is not supported")),
fetchAnalyzeFormResultOperation(modelId, recognizeOptions.isIncludeFieldElements()));
} catch (RuntimeException ex) {
return PollerFlux.error(ex);
Expand Down Expand Up @@ -181,12 +189,18 @@ public final class FormRecognizerAsyncClient {
* or has been cancelled. The completed operation returns a List of {@link RecognizedForm}.
* @throws FormRecognizerException If recognize operation fails and the {@link AnalyzeOperationResult} returned with
* an {@link OperationStatus#FAILED}.
* @throws NullPointerException If {@code recognizeOptions} is {@code null}.
* @throws NullPointerException If {@code form}, {@code modelId} is {@code null}.
*/
@ServiceMethod(returns = ReturnType.COLLECTION)
public PollerFlux<OperationResult, List<RecognizedForm>>
beginRecognizeCustomForms(Flux<ByteBuffer> form, long length, String modelId,
RecognizeOptions recognizeOptions) {
return beginRecognizeCustomForms(form, length, modelId, recognizeOptions, Context.NONE);
}

PollerFlux<OperationResult, List<RecognizedForm>>
beginRecognizeCustomForms(Flux<ByteBuffer> form, long length, String modelId,
RecognizeOptions recognizeOptions, Context context) {
try {
recognizeOptions = getRecognizeOptionsProperties(recognizeOptions);
return new PollerFlux<OperationResult, List<RecognizedForm>>(
Expand All @@ -195,7 +209,8 @@ public final class FormRecognizerAsyncClient {
recognizeOptions.getContentType(),
recognizeOptions.isIncludeFieldElements()),
createAnalyzeFormPollOperation(modelId),
(activationResponse, context) -> Mono.error(new RuntimeException("Cancellation is not supported")),
(activationResponse, pollingContext) ->
Mono.error(new RuntimeException("Cancellation is not supported")),
fetchAnalyzeFormResultOperation(modelId, recognizeOptions.isIncludeFieldElements()));
} catch (RuntimeException ex) {
return PollerFlux.error(ex);
Expand Down Expand Up @@ -245,13 +260,18 @@ public PollerFlux<OperationResult, List<FormPage>> beginRecognizeContentFromUrl(
@ServiceMethod(returns = ReturnType.COLLECTION)
public PollerFlux<OperationResult, List<FormPage>>
beginRecognizeContentFromUrl(String formUrl, RecognizeOptions recognizeOptions) {
return beginRecognizeContentFromUrl(formUrl, recognizeOptions, Context.NONE);
}

PollerFlux<OperationResult, List<FormPage>>
beginRecognizeContentFromUrl(String formUrl, RecognizeOptions recognizeOptions, Context context) {
try {
recognizeOptions = getRecognizeOptionsProperties(recognizeOptions);
return new PollerFlux<OperationResult, List<FormPage>>(
recognizeOptions.getPollInterval(),
contentAnalyzeActivationOperation(formUrl),
extractContentPollOperation(),
(activationResponse, context) ->
(activationResponse, pollingContext) ->
monoError(logger, new RuntimeException("Cancellation is not supported")),
fetchExtractContentResult());
} catch (RuntimeException ex) {
Expand Down Expand Up @@ -305,18 +325,23 @@ public PollerFlux<OperationResult, List<FormPage>> beginRecognizeContent(
* been cancelled. The completed operation returns a List of {@link FormPage}.
* @throws FormRecognizerException If recognize operation fails and the {@link AnalyzeOperationResult} returned with
* an {@link OperationStatus#FAILED}.
* @throws NullPointerException If {@code recognizeOptions} is {@code null}.
* @throws NullPointerException If {@code form} is {@code null}.
*/
@ServiceMethod(returns = ReturnType.COLLECTION)
public PollerFlux<OperationResult, List<FormPage>> beginRecognizeContent(Flux<ByteBuffer> form, long length,
RecognizeOptions recognizeOptions) {
return beginRecognizeContent(form, length, recognizeOptions, Context.NONE);
}

PollerFlux<OperationResult, List<FormPage>> beginRecognizeContent(Flux<ByteBuffer> form, long length,
RecognizeOptions recognizeOptions, Context context) {
try {
recognizeOptions = getRecognizeOptionsProperties(recognizeOptions);
return new PollerFlux<>(
recognizeOptions.getPollInterval(),
contentStreamActivationOperation(form, length, recognizeOptions.getContentType()),
extractContentPollOperation(),
(activationResponse, context) ->
(activationResponse, pollingContext) ->
monoError(logger, new RuntimeException("Cancellation is not supported")),
fetchExtractContentResult());
} catch (RuntimeException ex) {
Expand Down Expand Up @@ -370,13 +395,18 @@ public PollerFlux<OperationResult, List<FormPage>> beginRecognizeContent(Flux<By
@ServiceMethod(returns = ReturnType.COLLECTION)
public PollerFlux<OperationResult, List<RecognizedForm>>
beginRecognizeReceiptsFromUrl(String receiptUrl, RecognizeOptions recognizeOptions) {
return beginRecognizeReceiptsFromUrl(receiptUrl, recognizeOptions, Context.NONE);
}

PollerFlux<OperationResult, List<RecognizedForm>>
beginRecognizeReceiptsFromUrl(String receiptUrl, RecognizeOptions recognizeOptions, Context context) {
try {
recognizeOptions = getRecognizeOptionsProperties(recognizeOptions);
return new PollerFlux<OperationResult, List<RecognizedForm>>(
recognizeOptions.getPollInterval(),
receiptAnalyzeActivationOperation(receiptUrl, recognizeOptions.isIncludeFieldElements()),
extractReceiptPollOperation(),
(activationResponse, context) -> monoError(logger,
(activationResponse, pollingContext) -> monoError(logger,
new RuntimeException("Cancellation is not supported")),
fetchExtractReceiptResult(recognizeOptions.isIncludeFieldElements()));
} catch (RuntimeException ex) {
Expand Down Expand Up @@ -434,19 +464,25 @@ public PollerFlux<OperationResult, List<RecognizedForm>> beginRecognizeReceipts(
* or has been cancelled. The completed operation returns a List of {@link RecognizedForm}.
* @throws FormRecognizerException If recognize operation fails and the {@link AnalyzeOperationResult} returned with
* an {@link OperationStatus#FAILED}.
* @throws NullPointerException If {@code recognizeOptions} is {@code null}.
* @throws NullPointerException If {@code receipt} is {@code null}.
*/
@ServiceMethod(returns = ReturnType.COLLECTION)
public PollerFlux<OperationResult, List<RecognizedForm>>
beginRecognizeReceipts(Flux<ByteBuffer> receipt, long length, RecognizeOptions recognizeOptions) {
return beginRecognizeReceipts(receipt, length, recognizeOptions, Context.NONE);
}

PollerFlux<OperationResult, List<RecognizedForm>>
beginRecognizeReceipts(Flux<ByteBuffer> receipt, long length, RecognizeOptions recognizeOptions,
Context context) {
try {
recognizeOptions = getRecognizeOptionsProperties(recognizeOptions);
return new PollerFlux<>(
recognizeOptions.getPollInterval(),
receiptStreamActivationOperation(receipt, length,
recognizeOptions.getContentType(), recognizeOptions.isIncludeFieldElements()),
extractReceiptPollOperation(),
(activationResponse, context) -> monoError(logger,
(activationResponse, pollingContext) -> monoError(logger,
new RuntimeException("Cancellation is not supported")),
fetchExtractReceiptResult(recognizeOptions.isIncludeFieldElements()));
} catch (RuntimeException ex) {
Expand Down
Loading