//------------------------------------------------------------------ // Proxy Script Generated by Delphi Microservices Container 4.3.20 // Do not modify this code! // Generated at: 2025-04-26 18.33.46 //------------------------------------------------------------------ export class ReportsRPCProxy { __baseUrl = ""; constructor(baseUrl) { this.__baseUrl = baseUrl; } get baseUrl() { return this.__baseUrl; } __getJsonRpcRequest(jsonrpcRequestMethod, params) { let json = this.__getJsonRpcNotification(jsonrpcRequestMethod, params); json["id"] = Math.trunc(Math.random() * 100000); return json; } __getJsonRpcNotification(jsonrpcRequestMethod, params) { return { "jsonrpc": "2.0", "method": jsonrpcRequestMethod, "params": params }; } __internalFetch(type, baseUrl, jsonrpcMethod, params) { let jsonbody = null; if (type === 'notification') { jsonbody = this.__getJsonRpcNotification(jsonrpcMethod, params); } else if (type === 'request') { jsonbody = this.__getJsonRpcRequest(jsonrpcMethod, params); } return fetch(baseUrl, { "method": "POST", "body": JSON.stringify(jsonbody), "headers": { "content-type": "application/json", "accept": "application/json" } }).then(data => { switch (data.status) { case 200: { return data.json(); } case 204: { //no content return null; } default: { return data.json(); } } }); } __jsonRpcResponsePromise(type, baseUrl, method, params) { switch (type) { case "request": { return new Promise((resolve, reject) => { this.__internalFetch('request', this.baseUrl, method, params).then(jsonresp => { if ("result" in jsonresp) { resolve(jsonresp.result) } else if ("error" in jsonresp) { reject(jsonresp.error) } else { throw new Error("Invalid JSON-RPC response"); } }); }) break; } case "notification": { return new Promise((resolve, reject) => { this.__internalFetch('notification', this.baseUrl, method, params).then(jsonresp => { if (jsonresp !== null && "error" in jsonresp) { reject(jsonresp.error); } else { resolve(); } }); }) break; } default: { throw new Error("JSON-RPC message must be 'request' or 'notification' [Actual: '" + type + '"]'); } } } // Following methods are automatically generated // Invokes [function GenerateMultipleReport(const Token: string; const Template: TJsonObject; const ReportData: TJsonObject; const OutputFormat: string): TJsonObject] // Generates report based on a docx template and a JSON structure. Generates one PDF file for each element in the "items" JSON property. generateMultipleReport(token, template, reportData, outputFormat) { return this.__jsonRpcResponsePromise('request', this.__baseUrl, 'GenerateMultipleReport',{ "token": token, "template": template, "reportData": reportData, "outputFormat": outputFormat }); } // Invokes [function GenerateMultipleReportByName(const Token: string; const ReportName: string; const ReportData: TJsonObject; const OutputFormat: string): TJsonObject] // Generates report based on a docx template named "report_name" stored on server and a JSON structure. Generates one PDF file for each element in the "items" JSON property and return it as zipped base64 file. generateMultipleReportByName(token, reportName, reportData, outputFormat) { return this.__jsonRpcResponsePromise('request', this.__baseUrl, 'GenerateMultipleReportByName',{ "token": token, "reportName": reportName, "reportData": reportData, "outputFormat": outputFormat }); } // Invokes [function GenerateReportByName(const Token: string; const ReportName: string; const ReportData: TJsonObject; const OutputFormat: string): TJsonObject] // Generates a report based on a docx template named "report_name" stored on server and a JSON structure. Generates only one PDF file and return it as not compressed base64 stream, just save it and you get the PDF - the "items" JSON property must contains a single object. generateReportByName(token, reportName, reportData, outputFormat) { return this.__jsonRpcResponsePromise('request', this.__baseUrl, 'GenerateReportByName',{ "token": token, "reportName": reportName, "reportData": reportData, "outputFormat": outputFormat }); } // Invokes [function GenerateMultipleReportAsync(const Token: string; const ReportName: string; const Template: TJsonObject; const ReportData: TJsonObject; const UserToNotify: TJsonArray; const OutputFormat: string): TJsonObject] // Generates report asynchronously based on a docx template and a JSON structure. Generates one PDF file for each element in the "items" JSON property. generateMultipleReportAsync(token, reportName, template, reportData, userToNotify, outputFormat) { return this.__jsonRpcResponsePromise('request', this.__baseUrl, 'GenerateMultipleReportAsync',{ "token": token, "reportName": reportName, "template": template, "reportData": reportData, "userToNotify": userToNotify, "outputFormat": outputFormat }); } // Invokes [function GetAsyncReport(const Token: string; const ReportID: string): TJsonObject] // Returns a report generated asychronously with GenerateMultipleReportAsync getAsyncReport(token, reportId) { return this.__jsonRpcResponsePromise('request', this.__baseUrl, 'GetAsyncReport',{ "token": token, "reportId": reportId }); } // Invokes [function GetStoredReportNames(const Token: string; const RegExExpressionFilter: string): TJsonObject] // Returns all the stored report template names getStoredReportNames(token, regExExpressionFilter) { return this.__jsonRpcResponsePromise('request', this.__baseUrl, 'GetStoredReportNames',{ "token": token, "regExExpressionFilter": regExExpressionFilter }); } // Invokes [function Login(const UserName: string; const Password: string): TJsonObject] // Returns the JWT token which can be used to call all other methods. login(userName, password) { return this.__jsonRpcResponsePromise('request', this.__baseUrl, 'Login',{ "userName": userName, "password": password }); } // Invokes [function RefreshToken(const Token: string): TJsonObject] // Extends the expiration time of a still-valid token. Clients must use the token returned instead of the previous one. refreshToken(token) { return this.__jsonRpcResponsePromise('request', this.__baseUrl, 'RefreshToken',{ "token": token }); } } //end