//------------------------------------------------------------------ // Proxy Unit Generated by Delphi Microservices Container 4.3.20 // Do not modify this unit! // Generated at: 2025-04-26 18.35.09 //------------------------------------------------------------------ unit ReportsRPCProxy; interface uses System.SysUtils, System.Classes, MVCFramework.JSONRPC, MVCFramework.JSONRPC.Client, MVCFramework.Serializer.Commons, System.Net.URLClient, JsonDataObjects; type IReportsRPCProxy = interface ['{50F3D865-FEDE-4402-A82F-C3AF5DF2A30C}'] function RPCExecutor: IMVCJSONRPCExecutor; procedure IgnoreInvalidCert; /// /// 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. /// function GenerateMultipleReport(const Token: string; const Template: TJsonObject; const ReportData: TJsonObject; const OutputFormat: string): TJDOJsonObject; /// /// 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. /// function GenerateMultipleReportByName(const Token: string; const ReportName: string; const ReportData: TJsonObject; const OutputFormat: string): TJDOJsonObject; /// /// 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. /// function GenerateReportByName(const Token: string; const ReportName: string; const ReportData: TJsonObject; const OutputFormat: string): TJDOJsonObject; /// /// 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. /// function GenerateMultipleReportAsync(const Token: string; const ReportName: string; const Template: TJsonObject; const ReportData: TJsonObject; const UserToNotify: TJsonArray; const OutputFormat: string): TJDOJsonObject; /// /// Invokes [function GetAsyncReport(const Token: string; const ReportID: string): TJsonObject] /// Returns a report generated asychronously with GenerateMultipleReportAsync /// function GetAsyncReport(const Token: string; const ReportID: string): TJDOJsonObject; /// /// Invokes [function GetStoredReportNames(const Token: string; const RegExExpressionFilter: string): TJsonObject] /// Returns all the stored report template names /// function GetStoredReportNames(const Token: string; const RegExExpressionFilter: string): TJDOJsonObject; /// /// Invokes [function Login(const UserName: string; const Password: string): TJsonObject] /// Returns the JWT token which can be used to call all other methods. /// function Login(const UserName: string; const Password: string): TJDOJsonObject; /// /// 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. /// function RefreshToken(const Token: string): TJDOJsonObject; end; TReportsRPCProxy = class(TInterfacedObject, IReportsRPCProxy) protected fRPCExecutor: IMVCJSONRPCExecutor; function NewReqID: Int64; procedure IgnoreInvalidServerCertificate(const Sender: TObject; const ARequest: TURLRequest; const Certificate: TCertificate; var Accepted: Boolean); public function RPCExecutor: IMVCJSONRPCExecutor; procedure IgnoreInvalidCert; constructor Create(const EndpointURL: String); virtual; /// /// 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. /// function GenerateMultipleReport(const Token: string; const Template: TJsonObject; const ReportData: TJsonObject; const OutputFormat: string): TJDOJsonObject; /// /// 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. /// function GenerateMultipleReportByName(const Token: string; const ReportName: string; const ReportData: TJsonObject; const OutputFormat: string): TJDOJsonObject; /// /// 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. /// function GenerateReportByName(const Token: string; const ReportName: string; const ReportData: TJsonObject; const OutputFormat: string): TJDOJsonObject; /// /// 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. /// function GenerateMultipleReportAsync(const Token: string; const ReportName: string; const Template: TJsonObject; const ReportData: TJsonObject; const UserToNotify: TJsonArray; const OutputFormat: string): TJDOJsonObject; /// /// Invokes [function GetAsyncReport(const Token: string; const ReportID: string): TJsonObject] /// Returns a report generated asychronously with GenerateMultipleReportAsync /// function GetAsyncReport(const Token: string; const ReportID: string): TJDOJsonObject; /// /// Invokes [function GetStoredReportNames(const Token: string; const RegExExpressionFilter: string): TJsonObject] /// Returns all the stored report template names /// function GetStoredReportNames(const Token: string; const RegExExpressionFilter: string): TJDOJsonObject; /// /// Invokes [function Login(const UserName: string; const Password: string): TJsonObject] /// Returns the JWT token which can be used to call all other methods. /// function Login(const UserName: string; const Password: string): TJDOJsonObject; /// /// 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. /// function RefreshToken(const Token: string): TJDOJsonObject; end; implementation constructor TReportsRPCProxy.Create(const EndpointURL: String); begin inherited Create; fRPCExecutor := TMVCJSONRPCExecutor.Create(EndpointURL); fRPCExecutor.AddHTTPHeader(TNetHeader.Create('Accept-Encoding', 'gzip,deflate')); fRPCExecutor.AddHTTPHeader(TNetHeader.Create('User-Agent', 'dmscontainer-delphi-proxy')); end; function TReportsRPCProxy.NewReqID: Int64; begin Result := 10000 + Random(10000000); end; function TReportsRPCProxy.RPCExecutor: IMVCJSONRPCExecutor; begin Result := fRPCExecutor; end; procedure TReportsRPCProxy.IgnoreInvalidCert; begin fRPCExecutor.SetOnValidateServerCertificate(IgnoreInvalidServerCertificate); end; procedure TReportsRPCProxy.IgnoreInvalidServerCertificate( const Sender: TObject; const ARequest: TURLRequest; const Certificate: TCertificate; var Accepted: Boolean); begin Accepted := True; end; function TReportsRPCProxy.GenerateMultipleReport(const Token: string; const Template: TJsonObject; const ReportData: TJsonObject; const OutputFormat: string): TJDOJsonObject; var lReq: IJSONRPCRequest; lResp: IJSONRPCResponse; begin lReq := TJSONRPCRequest.Create(NewReqID, 'GenerateMultipleReport'); lReq.Params.Add(Token); lReq.Params.Add(Template); lReq.Params.Add(ReportData); lReq.Params.Add(OutputFormat); lResp := fRPCExecutor.ExecuteRequest(lReq); Result := lResp.ResultAsJSONObject.Clone as TJDOJsonObject; //TJsonObject end; function TReportsRPCProxy.GenerateMultipleReportByName(const Token: string; const ReportName: string; const ReportData: TJsonObject; const OutputFormat: string): TJDOJsonObject; var lReq: IJSONRPCRequest; lResp: IJSONRPCResponse; begin lReq := TJSONRPCRequest.Create(NewReqID, 'GenerateMultipleReportByName'); lReq.Params.Add(Token); lReq.Params.Add(ReportName); lReq.Params.Add(ReportData); lReq.Params.Add(OutputFormat); lResp := fRPCExecutor.ExecuteRequest(lReq); Result := lResp.ResultAsJSONObject.Clone as TJDOJsonObject; //TJsonObject end; function TReportsRPCProxy.GenerateReportByName(const Token: string; const ReportName: string; const ReportData: TJsonObject; const OutputFormat: string): TJDOJsonObject; var lReq: IJSONRPCRequest; lResp: IJSONRPCResponse; begin lReq := TJSONRPCRequest.Create(NewReqID, 'GenerateReportByName'); lReq.Params.Add(Token); lReq.Params.Add(ReportName); lReq.Params.Add(ReportData); lReq.Params.Add(OutputFormat); lResp := fRPCExecutor.ExecuteRequest(lReq); Result := lResp.ResultAsJSONObject.Clone as TJDOJsonObject; //TJsonObject end; function TReportsRPCProxy.GenerateMultipleReportAsync(const Token: string; const ReportName: string; const Template: TJsonObject; const ReportData: TJsonObject; const UserToNotify: TJsonArray; const OutputFormat: string): TJDOJsonObject; var lReq: IJSONRPCRequest; lResp: IJSONRPCResponse; begin lReq := TJSONRPCRequest.Create(NewReqID, 'GenerateMultipleReportAsync'); lReq.Params.Add(Token); lReq.Params.Add(ReportName); lReq.Params.Add(Template); lReq.Params.Add(ReportData); lReq.Params.Add(UserToNotify); lReq.Params.Add(OutputFormat); lResp := fRPCExecutor.ExecuteRequest(lReq); Result := lResp.ResultAsJSONObject.Clone as TJDOJsonObject; //TJsonObject end; function TReportsRPCProxy.GetAsyncReport(const Token: string; const ReportID: string): TJDOJsonObject; var lReq: IJSONRPCRequest; lResp: IJSONRPCResponse; begin lReq := TJSONRPCRequest.Create(NewReqID, 'GetAsyncReport'); lReq.Params.Add(Token); lReq.Params.Add(ReportID); lResp := fRPCExecutor.ExecuteRequest(lReq); Result := lResp.ResultAsJSONObject.Clone as TJDOJsonObject; //TJsonObject end; function TReportsRPCProxy.GetStoredReportNames(const Token: string; const RegExExpressionFilter: string): TJDOJsonObject; var lReq: IJSONRPCRequest; lResp: IJSONRPCResponse; begin lReq := TJSONRPCRequest.Create(NewReqID, 'GetStoredReportNames'); lReq.Params.Add(Token); lReq.Params.Add(RegExExpressionFilter); lResp := fRPCExecutor.ExecuteRequest(lReq); Result := lResp.ResultAsJSONObject.Clone as TJDOJsonObject; //TJsonObject end; function TReportsRPCProxy.Login(const UserName: string; const Password: string): TJDOJsonObject; var lReq: IJSONRPCRequest; lResp: IJSONRPCResponse; begin lReq := TJSONRPCRequest.Create(NewReqID, 'Login'); lReq.Params.Add(UserName); lReq.Params.Add(Password); lResp := fRPCExecutor.ExecuteRequest(lReq); Result := lResp.ResultAsJSONObject.Clone as TJDOJsonObject; //TJsonObject end; function TReportsRPCProxy.RefreshToken(const Token: string): TJDOJsonObject; var lReq: IJSONRPCRequest; lResp: IJSONRPCResponse; begin lReq := TJSONRPCRequest.Create(NewReqID, 'RefreshToken'); lReq.Params.Add(Token); lResp := fRPCExecutor.ExecuteRequest(lReq); Result := lResp.ResultAsJSONObject.Clone as TJDOJsonObject; //TJsonObject end; end.