react-native-scanbot-sdk
Version:
Scanbot Document and Barcode Scanner SDK React Native Plugin for Android and iOS
171 lines (154 loc) • 5.27 kB
text/typescript
/// Auto-generated with ScanbotSDKCodegenV3. Modifications will be overwritten.
/// Generated from core/schemas/VINScannerTypes.yaml
import { TextPatternScannerResult } from '../text_pattern_scanner/TextPatternScannerTypes';
import { ToJsonConfiguration } from '../utils/json/JsonSerializationTypes';
import { DeepPartial, PartiallyConstructible, Point } from '../utils/utils';
/**
Status of the barcode extraction.
- `SUCCESS`:
Barcode containing a VIN was successfully extracted.
- `BARCODE_WITHOUT_VIN`:
Barcode was found but it does not contain a VIN.
- `NO_BARCODE_FOUND`:
No barcode was found in the image.
- `BARCODE_EXTRACTION_DISABLED`:
Barcode extraction is disabled in the configuration.
*/
export type VinBarcodeExtractionStatus =
| 'SUCCESS'
| 'BARCODE_WITHOUT_VIN'
| 'NO_BARCODE_FOUND'
| 'BARCODE_EXTRACTION_DISABLED';
export const VinBarcodeExtractionStatusValues: VinBarcodeExtractionStatus[] = [
'SUCCESS',
'BARCODE_WITHOUT_VIN',
'NO_BARCODE_FOUND',
'BARCODE_EXTRACTION_DISABLED',
];
/**
Result of the barcode scanner.
*/
export class VinBarcodeResult extends PartiallyConstructible {
/**
Text result of the barcode scanner.
*/
public readonly extractedVIN: string;
/**
Rectangle of the barcode in the image.
*/
public readonly rectangle: Point[];
/**
Status of the barcode extraction.
*/
public readonly status: VinBarcodeExtractionStatus;
/** @param source {@displayType `DeepPartial<VinBarcodeResult>`} */
public constructor(source: DeepPartial<VinBarcodeResult> = {}) {
super();
if (source.extractedVIN !== undefined) {
this.extractedVIN = source.extractedVIN;
} else {
throw new Error('extractedVIN must be present in constructor argument');
}
if (source.rectangle !== undefined) {
this.rectangle = source.rectangle.map((it: any) => {
return { x: it.x, y: it.y };
});
} else {
throw new Error('rectangle must be present in constructor argument');
}
if (source.status !== undefined) {
this.status = source.status;
} else {
throw new Error('status must be present in constructor argument');
}
}
public serialize(
config: ToJsonConfiguration = new ToJsonConfiguration()
): DeepPartial<VinBarcodeResult> {
return {
extractedVIN: this.extractedVIN,
rectangle: this.rectangle.map((it: any) => {
return it;
}),
status: this.status,
};
}
}
/**
Result of the VIN scanner.
*/
export class VinScannerResult extends PartiallyConstructible {
/**
Text result of the VIN scanner.
*/
public readonly textResult: TextPatternScannerResult;
/**
Barcode result of the VIN scanner.
*/
public readonly barcodeResult: VinBarcodeResult;
/** @param source {@displayType `DeepPartial<VinScannerResult>`} */
public constructor(source: DeepPartial<VinScannerResult> = {}) {
super();
if (source.textResult !== undefined) {
this.textResult = new TextPatternScannerResult(source.textResult);
} else {
throw new Error('textResult must be present in constructor argument');
}
if (source.barcodeResult !== undefined) {
this.barcodeResult = new VinBarcodeResult(source.barcodeResult);
} else {
throw new Error('barcodeResult must be present in constructor argument');
}
}
public serialize(
config: ToJsonConfiguration = new ToJsonConfiguration()
): DeepPartial<VinScannerResult> {
return {
textResult: this.textResult.serialize(config),
barcodeResult: this.barcodeResult.serialize(config),
};
}
}
/**
Configuration for the VIN scanner.
*/
export class VinScannerConfiguration extends PartiallyConstructible {
/**
If true, the VIN scanner will also extract VINs from barcodes.
Requires a license that allows barcode scanning in addition to VIN scanning.
Default is false
*/
public extractVINFromBarcode: boolean = false;
/**
Maximum image size (height or width) for OCR process. 0 - do not rescale.
Default is 0
*/
public ocrResolutionLimit: number = 0;
/**
Maximum number of accumulated frames to inspect before actual result is returned.
Default is 3
*/
public maximumNumberOfAccumulatedFrames: number = 3;
/**
Minimum number of accumulated frames that have equal result.
Default is 2
*/
public minimumNumberOfRequiredFramesWithEqualScanningResult: number = 2;
/** @param source {@displayType `DeepPartial<VinScannerConfiguration>`} */
public constructor(source: DeepPartial<VinScannerConfiguration> = {}) {
super();
if (source.extractVINFromBarcode !== undefined) {
this.extractVINFromBarcode = source.extractVINFromBarcode;
}
if (source.ocrResolutionLimit !== undefined) {
this.ocrResolutionLimit = source.ocrResolutionLimit;
}
if (source.maximumNumberOfAccumulatedFrames !== undefined) {
this.maximumNumberOfAccumulatedFrames = source.maximumNumberOfAccumulatedFrames;
}
if (source.minimumNumberOfRequiredFramesWithEqualScanningResult !== undefined) {
this.minimumNumberOfRequiredFramesWithEqualScanningResult =
source.minimumNumberOfRequiredFramesWithEqualScanningResult;
}
}
}