@softvision/webpdf-wsclient-typescript
Version:
A simplified and optimized API client library for the webPDF server
133 lines • 7.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.WebServiceFactory = void 0;
const session_1 = require("../session");
const WebServiceType_1 = require("./WebServiceType");
const WebServiceProtocol_1 = require("./WebServiceProtocol");
const exception_1 = require("../exception");
const generated_sources_1 = require("../generated-sources");
const openapi_1 = require("../openapi");
const rest_1 = require("./rest");
class WebServiceFactory {
constructor() {
}
static createInstance(session, webServiceType) {
switch (session.getWebServiceProtocol()) {
case WebServiceProtocol_1.WebServiceProtocol.REST:
if (!(0, session_1.instanceOfRestSession)(session)) {
throw new exception_1.ClientResultException(exception_1.WsclientErrors.INVALID_WEBSERVICE_SESSION);
}
return WebServiceFactory.createRestInstance(session, webServiceType, WebServiceFactory.createRestParameters(webServiceType));
default:
throw new exception_1.ClientResultException(exception_1.WsclientErrors.UNKNOWN_WEBSERVICE_PROTOCOL);
}
}
static createByParameters(session, parameter) {
switch (session.getWebServiceProtocol()) {
case WebServiceProtocol_1.WebServiceProtocol.REST:
if (!(0, session_1.instanceOfRestSession)(session)) {
throw new exception_1.ClientResultException(exception_1.WsclientErrors.INVALID_WEBSERVICE_SESSION);
}
let restOperationData = openapi_1.RestOperationData.fromJson(parameter);
return WebServiceFactory.createRestInstance(session, this.determineWebServiceType(restOperationData), restOperationData);
default:
throw new exception_1.ClientResultException(exception_1.WsclientErrors.UNKNOWN_WEBSERVICE_PROTOCOL);
}
}
static createRestParameters(webServiceType) {
switch (webServiceType) {
case WebServiceType_1.WebServiceTypes.CONVERTER:
return openapi_1.RestOperationData.fromJson(generated_sources_1.ConverterOperation.fromJson({
converter: generated_sources_1.Converter.fromJson({}).toJson()
}));
case WebServiceType_1.WebServiceTypes.URLCONVERTER:
return openapi_1.RestOperationData.fromJson(generated_sources_1.UrlConverterOperation.fromJson({
urlconverter: generated_sources_1.UrlConverter.fromJson({}).toJson()
}));
case WebServiceType_1.WebServiceTypes.PDFA:
return openapi_1.RestOperationData.fromJson(generated_sources_1.PdfaOperation.fromJson({
pdfa: generated_sources_1.Pdfa.fromJson({}).toJson()
}));
case WebServiceType_1.WebServiceTypes.TOOLBOX:
return openapi_1.RestOperationData.fromJson(generated_sources_1.ToolboxOperation.fromJson({
toolbox: []
}));
case WebServiceType_1.WebServiceTypes.OCR:
return openapi_1.RestOperationData.fromJson(generated_sources_1.OcrOperation.fromJson({
ocr: generated_sources_1.Ocr.fromJson({}).toJson()
}));
case WebServiceType_1.WebServiceTypes.SIGNATURE:
return openapi_1.RestOperationData.fromJson(generated_sources_1.SignatureOperation.fromJson({
signature: generated_sources_1.Signature.fromJson({}).toJson()
}));
case WebServiceType_1.WebServiceTypes.BARCODE:
return openapi_1.RestOperationData.fromJson(generated_sources_1.BarcodeOperation.fromJson({
barcode: generated_sources_1.Barcode.fromJson({}).toJson()
}));
default:
throw new exception_1.ClientResultException(exception_1.WsclientErrors.UNKNOWN_WEBSERVICE_TYPE);
}
}
static createRestInstance(session, webServiceType, operationData) {
switch (webServiceType) {
case WebServiceType_1.WebServiceTypes.CONVERTER:
let converterWebService = new rest_1.ConverterWebService(session);
converterWebService.setOperationParameters(operationData.getConverter());
return converterWebService;
case WebServiceType_1.WebServiceTypes.SIGNATURE:
let signatureWebService = new rest_1.SignatureWebService(session);
signatureWebService.setOperationParameters(operationData.getSignature());
return signatureWebService;
case WebServiceType_1.WebServiceTypes.PDFA:
let pdfaWebService = new rest_1.PdfaWebService(session);
pdfaWebService.setOperationParameters(operationData.getPdfa());
return pdfaWebService;
case WebServiceType_1.WebServiceTypes.OCR:
let ocrWebService = new rest_1.OcrWebService(session);
ocrWebService.setOperationParameters(operationData.getOcr());
return ocrWebService;
case WebServiceType_1.WebServiceTypes.TOOLBOX:
let toolboxWebService = new rest_1.ToolboxWebService(session);
toolboxWebService.setOperationParameters(operationData.getToolbox());
return toolboxWebService;
case WebServiceType_1.WebServiceTypes.URLCONVERTER:
let urlConverterWebService = new rest_1.UrlConverterWebService(session);
urlConverterWebService.setOperationParameters(operationData.getUrlconverter());
return urlConverterWebService;
case WebServiceType_1.WebServiceTypes.BARCODE:
let barcodeConverterWebService = new rest_1.BarcodeWebService(session);
barcodeConverterWebService.setOperationParameters(operationData.getBarcode());
return barcodeConverterWebService;
default:
throw new exception_1.ClientResultException(exception_1.WsclientErrors.UNKNOWN_WEBSERVICE_TYPE);
}
}
static determineWebServiceType(operationData) {
if (operationData.isSetConverter()) {
return WebServiceType_1.WebServiceTypes.CONVERTER;
}
else if (operationData.isSetBarcode()) {
return WebServiceType_1.WebServiceTypes.BARCODE;
}
else if (operationData.isSetOcr()) {
return WebServiceType_1.WebServiceTypes.OCR;
}
else if (operationData.isSetPdfa()) {
return WebServiceType_1.WebServiceTypes.PDFA;
}
else if (operationData.isSetSignature()) {
return WebServiceType_1.WebServiceTypes.SIGNATURE;
}
else if (operationData.isSetToolbox()) {
return WebServiceType_1.WebServiceTypes.TOOLBOX;
}
else if (operationData.isSetUrlconverter()) {
return WebServiceType_1.WebServiceTypes.URLCONVERTER;
}
else {
throw new exception_1.ClientResultException(exception_1.WsclientErrors.UNKNOWN_WEBSERVICE_TYPE);
}
}
}
exports.WebServiceFactory = WebServiceFactory;
//# sourceMappingURL=WebServiceFactory.js.map