//------------------------------------------------------------------ // Proxy Unit Generated by Delphi Microservices Container 4.3.20 // Do not modify this unit! // Generated at: 2025-04-26 18.16.51 //------------------------------------------------------------------ unit EmailRPCProxy; interface uses System.SysUtils, System.Classes, MVCFramework.JSONRPC, MVCFramework.JSONRPC.Client, MVCFramework.Serializer.Commons, System.Net.URLClient, JsonDataObjects; type IEmailRPCProxy = interface ['{A05F647F-2F31-4BE6-9E6C-5E180D021757}'] function RPCExecutor: IMVCJSONRPCExecutor; procedure IgnoreInvalidCert; /// /// Invokes [procedure SetUserSender(const Token: string; const UserID: Int64; aSender: TJsonObject)] /// procedure SetUserSender(const Token: string; const UserID: Int64; aSender: TJsonObject); /// /// Invokes [function RemoveUserSender(const Token: string; const UserID: Int64): TJsonObject] /// function RemoveUserSender(const Token: string; const UserID: Int64): TJDOJsonObject; /// /// Invokes [function GetUserSender(const Token: string; const UserID: Int64): TSender] /// function GetUserSender(const Token: string; const UserID: Int64): IJSONRPCResponse; /// /// Invokes [function GetMessagesByUserName(const Token: string; const SenderUserName: string): TObjectList] /// Returns the messages sent by SenderUserName /// function GetMessagesByUserName(const Token: string; const SenderUserName: string): IJSONRPCResponse; /// /// Invokes [function GetMyMessages(const Token: string; const StatusList: TJsonArray): TObjectList] /// Returns the messages owned by the logged user /// function GetMyMessages(const Token: string; const StatusList: TJsonArray): IJSONRPCResponse; /// /// Invokes [function GetMessageByID(const Token: string; const MessageID: Int64): TMessage] /// Returns the message with id MessageID /// function GetMessageByID(const Token: string; const MessageID: Int64): IJSONRPCResponse; /// /// Invokes [function GetMessagesByStatus(const Token: string; const StatusList: TJsonArray): TObjectList] /// Returns the messages with the status contained in the StatusList array /// function GetMessagesByStatus(const Token: string; const StatusList: TJsonArray): IJSONRPCResponse; /// /// Invokes [function GetMessagesByRQL(const Token: string; const Filter: TJsonObject): TJsonObject] /// Returns all messages (up to 6 months) which match the filter.rql property /// function GetMessagesByRQL(const Token: string; const Filter: TJsonObject): TJDOJsonObject; /// /// Invokes [function SendMessage(const Token: string; const aMessage: TJsonObject): TJsonObject] /// Send a message using information stored in aMessage /// function SendMessage(const Token: string; const aMessage: TJsonObject): TJDOJsonObject; /// /// Invokes [function DeleteMessageByID(const Token: string; const MessageID: Int64): TJsonObject] /// function DeleteMessageByID(const Token: string; const MessageID: Int64): TJDOJsonObject; /// /// Invokes [function AdminSendMessage(const Token: string; const SenderUserName: string; const aMessage: TJsonObject): TJsonObject] /// function AdminSendMessage(const Token: string; const SenderUserName: string; const aMessage: TJsonObject): TJDOJsonObject; /// /// Invokes [function AdminSendTestMessage(const Token: string; const SenderUserName: string; const Recipient: string): TJsonObject] /// function AdminSendTestMessage(const Token: string; const SenderUserName: string; const Recipient: string): TJDOJsonObject; /// /// Invokes [function CreateMessage(const Token: string; const aMessage: TJsonObject): TJsonObject] /// function CreateMessage(const Token: string; const aMessage: TJsonObject): TJDOJsonObject; /// /// Invokes [function AddAttachmentToMessage(const Token: string; const aMessageID: Int64; const aIsRelated: Boolean; const aAttachment: TJsonObject): TJsonObject] /// function AddAttachmentToMessage(const Token: string; const aMessageID: Int64; const aIsRelated: Boolean; const aAttachment: TJsonObject): TJDOJsonObject; /// /// Invokes [function CompleteMessage(const Token: string; const aMessageID: Int64): TJsonObject] /// function CompleteMessage(const Token: string; const aMessageID: Int64): TJDOJsonObject; /// /// Invokes [function BulkSendMessages(const Token: string; const aMetaMessage: TJsonObject; const aBulkMessagesData: TJsonObject): TJsonObject] /// function BulkSendMessages(const Token: string; const aMetaMessage: TJsonObject; const aBulkMessagesData: TJsonObject): 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; TEmailRPCProxy = class(TInterfacedObject, IEmailRPCProxy) 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 [procedure SetUserSender(const Token: string; const UserID: Int64; aSender: TJsonObject)] /// procedure SetUserSender(const Token: string; const UserID: Int64; aSender: TJsonObject); /// /// Invokes [function RemoveUserSender(const Token: string; const UserID: Int64): TJsonObject] /// function RemoveUserSender(const Token: string; const UserID: Int64): TJDOJsonObject; /// /// Invokes [function GetUserSender(const Token: string; const UserID: Int64): TSender] /// function GetUserSender(const Token: string; const UserID: Int64): IJSONRPCResponse; /// /// Invokes [function GetMessagesByUserName(const Token: string; const SenderUserName: string): TObjectList] /// Returns the messages sent by SenderUserName /// function GetMessagesByUserName(const Token: string; const SenderUserName: string): IJSONRPCResponse; /// /// Invokes [function GetMyMessages(const Token: string; const StatusList: TJsonArray): TObjectList] /// Returns the messages owned by the logged user /// function GetMyMessages(const Token: string; const StatusList: TJsonArray): IJSONRPCResponse; /// /// Invokes [function GetMessageByID(const Token: string; const MessageID: Int64): TMessage] /// Returns the message with id MessageID /// function GetMessageByID(const Token: string; const MessageID: Int64): IJSONRPCResponse; /// /// Invokes [function GetMessagesByStatus(const Token: string; const StatusList: TJsonArray): TObjectList] /// Returns the messages with the status contained in the StatusList array /// function GetMessagesByStatus(const Token: string; const StatusList: TJsonArray): IJSONRPCResponse; /// /// Invokes [function GetMessagesByRQL(const Token: string; const Filter: TJsonObject): TJsonObject] /// Returns all messages (up to 6 months) which match the filter.rql property /// function GetMessagesByRQL(const Token: string; const Filter: TJsonObject): TJDOJsonObject; /// /// Invokes [function SendMessage(const Token: string; const aMessage: TJsonObject): TJsonObject] /// Send a message using information stored in aMessage /// function SendMessage(const Token: string; const aMessage: TJsonObject): TJDOJsonObject; /// /// Invokes [function DeleteMessageByID(const Token: string; const MessageID: Int64): TJsonObject] /// function DeleteMessageByID(const Token: string; const MessageID: Int64): TJDOJsonObject; /// /// Invokes [function AdminSendMessage(const Token: string; const SenderUserName: string; const aMessage: TJsonObject): TJsonObject] /// function AdminSendMessage(const Token: string; const SenderUserName: string; const aMessage: TJsonObject): TJDOJsonObject; /// /// Invokes [function AdminSendTestMessage(const Token: string; const SenderUserName: string; const Recipient: string): TJsonObject] /// function AdminSendTestMessage(const Token: string; const SenderUserName: string; const Recipient: string): TJDOJsonObject; /// /// Invokes [function CreateMessage(const Token: string; const aMessage: TJsonObject): TJsonObject] /// function CreateMessage(const Token: string; const aMessage: TJsonObject): TJDOJsonObject; /// /// Invokes [function AddAttachmentToMessage(const Token: string; const aMessageID: Int64; const aIsRelated: Boolean; const aAttachment: TJsonObject): TJsonObject] /// function AddAttachmentToMessage(const Token: string; const aMessageID: Int64; const aIsRelated: Boolean; const aAttachment: TJsonObject): TJDOJsonObject; /// /// Invokes [function CompleteMessage(const Token: string; const aMessageID: Int64): TJsonObject] /// function CompleteMessage(const Token: string; const aMessageID: Int64): TJDOJsonObject; /// /// Invokes [function BulkSendMessages(const Token: string; const aMetaMessage: TJsonObject; const aBulkMessagesData: TJsonObject): TJsonObject] /// function BulkSendMessages(const Token: string; const aMetaMessage: TJsonObject; const aBulkMessagesData: TJsonObject): 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 TEmailRPCProxy.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 TEmailRPCProxy.NewReqID: Int64; begin Result := 10000 + Random(10000000); end; function TEmailRPCProxy.RPCExecutor: IMVCJSONRPCExecutor; begin Result := fRPCExecutor; end; procedure TEmailRPCProxy.IgnoreInvalidCert; begin fRPCExecutor.SetOnValidateServerCertificate(IgnoreInvalidServerCertificate); end; procedure TEmailRPCProxy.IgnoreInvalidServerCertificate( const Sender: TObject; const ARequest: TURLRequest; const Certificate: TCertificate; var Accepted: Boolean); begin Accepted := True; end; procedure TEmailRPCProxy.SetUserSender(const Token: string; const UserID: Int64; aSender: TJsonObject); var lNotification: IJSONRPCNotification; begin lNotification := TJSONRPCNotification.Create('SetUserSender'); lNotification.Params.Add(Token); lNotification.Params.Add(UserID, TJSONRPCParamDataType.pdtLongInteger); lNotification.Params.Add(aSender); fRPCExecutor.ExecuteNotification(lNotification); end; function TEmailRPCProxy.RemoveUserSender(const Token: string; const UserID: Int64): TJDOJsonObject; var lReq: IJSONRPCRequest; lResp: IJSONRPCResponse; begin lReq := TJSONRPCRequest.Create(NewReqID, 'RemoveUserSender'); lReq.Params.Add(Token); lReq.Params.Add(UserID, TJSONRPCParamDataType.pdtLongInteger); lResp := fRPCExecutor.ExecuteRequest(lReq); Result := lResp.ResultAsJSONObject.Clone as TJDOJsonObject; //TJsonObject end; function TEmailRPCProxy.GetUserSender(const Token: string; const UserID: Int64): IJSONRPCResponse; var lReq: IJSONRPCRequest; lResp: IJSONRPCResponse; begin lReq := TJSONRPCRequest.Create(NewReqID, 'GetUserSender'); lReq.Params.Add(Token); lReq.Params.Add(UserID, TJSONRPCParamDataType.pdtLongInteger); lResp := fRPCExecutor.ExecuteRequest(lReq); Result := lResp; //TSender end; function TEmailRPCProxy.GetMessagesByUserName(const Token: string; const SenderUserName: string): IJSONRPCResponse; var lReq: IJSONRPCRequest; lResp: IJSONRPCResponse; begin lReq := TJSONRPCRequest.Create(NewReqID, 'GetMessagesByUserName'); lReq.Params.Add(Token); lReq.Params.Add(SenderUserName); lResp := fRPCExecutor.ExecuteRequest(lReq); Result := lResp; //TObjectList end; function TEmailRPCProxy.GetMyMessages(const Token: string; const StatusList: TJsonArray): IJSONRPCResponse; var lReq: IJSONRPCRequest; lResp: IJSONRPCResponse; begin lReq := TJSONRPCRequest.Create(NewReqID, 'GetMyMessages'); lReq.Params.Add(Token); lReq.Params.Add(StatusList); lResp := fRPCExecutor.ExecuteRequest(lReq); Result := lResp; //TObjectList end; function TEmailRPCProxy.GetMessageByID(const Token: string; const MessageID: Int64): IJSONRPCResponse; var lReq: IJSONRPCRequest; lResp: IJSONRPCResponse; begin lReq := TJSONRPCRequest.Create(NewReqID, 'GetMessageByID'); lReq.Params.Add(Token); lReq.Params.Add(MessageID, TJSONRPCParamDataType.pdtLongInteger); lResp := fRPCExecutor.ExecuteRequest(lReq); Result := lResp; //TMessage end; function TEmailRPCProxy.GetMessagesByStatus(const Token: string; const StatusList: TJsonArray): IJSONRPCResponse; var lReq: IJSONRPCRequest; lResp: IJSONRPCResponse; begin lReq := TJSONRPCRequest.Create(NewReqID, 'GetMessagesByStatus'); lReq.Params.Add(Token); lReq.Params.Add(StatusList); lResp := fRPCExecutor.ExecuteRequest(lReq); Result := lResp; //TObjectList end; function TEmailRPCProxy.GetMessagesByRQL(const Token: string; const Filter: TJsonObject): TJDOJsonObject; var lReq: IJSONRPCRequest; lResp: IJSONRPCResponse; begin lReq := TJSONRPCRequest.Create(NewReqID, 'GetMessagesByRQL'); lReq.Params.Add(Token); lReq.Params.Add(Filter); lResp := fRPCExecutor.ExecuteRequest(lReq); Result := lResp.ResultAsJSONObject.Clone as TJDOJsonObject; //TJsonObject end; function TEmailRPCProxy.SendMessage(const Token: string; const aMessage: TJsonObject): TJDOJsonObject; var lReq: IJSONRPCRequest; lResp: IJSONRPCResponse; begin lReq := TJSONRPCRequest.Create(NewReqID, 'SendMessage'); lReq.Params.Add(Token); lReq.Params.Add(aMessage); lResp := fRPCExecutor.ExecuteRequest(lReq); Result := lResp.ResultAsJSONObject.Clone as TJDOJsonObject; //TJsonObject end; function TEmailRPCProxy.DeleteMessageByID(const Token: string; const MessageID: Int64): TJDOJsonObject; var lReq: IJSONRPCRequest; lResp: IJSONRPCResponse; begin lReq := TJSONRPCRequest.Create(NewReqID, 'DeleteMessageByID'); lReq.Params.Add(Token); lReq.Params.Add(MessageID, TJSONRPCParamDataType.pdtLongInteger); lResp := fRPCExecutor.ExecuteRequest(lReq); Result := lResp.ResultAsJSONObject.Clone as TJDOJsonObject; //TJsonObject end; function TEmailRPCProxy.AdminSendMessage(const Token: string; const SenderUserName: string; const aMessage: TJsonObject): TJDOJsonObject; var lReq: IJSONRPCRequest; lResp: IJSONRPCResponse; begin lReq := TJSONRPCRequest.Create(NewReqID, 'AdminSendMessage'); lReq.Params.Add(Token); lReq.Params.Add(SenderUserName); lReq.Params.Add(aMessage); lResp := fRPCExecutor.ExecuteRequest(lReq); Result := lResp.ResultAsJSONObject.Clone as TJDOJsonObject; //TJsonObject end; function TEmailRPCProxy.AdminSendTestMessage(const Token: string; const SenderUserName: string; const Recipient: string): TJDOJsonObject; var lReq: IJSONRPCRequest; lResp: IJSONRPCResponse; begin lReq := TJSONRPCRequest.Create(NewReqID, 'AdminSendTestMessage'); lReq.Params.Add(Token); lReq.Params.Add(SenderUserName); lReq.Params.Add(Recipient); lResp := fRPCExecutor.ExecuteRequest(lReq); Result := lResp.ResultAsJSONObject.Clone as TJDOJsonObject; //TJsonObject end; function TEmailRPCProxy.CreateMessage(const Token: string; const aMessage: TJsonObject): TJDOJsonObject; var lReq: IJSONRPCRequest; lResp: IJSONRPCResponse; begin lReq := TJSONRPCRequest.Create(NewReqID, 'CreateMessage'); lReq.Params.Add(Token); lReq.Params.Add(aMessage); lResp := fRPCExecutor.ExecuteRequest(lReq); Result := lResp.ResultAsJSONObject.Clone as TJDOJsonObject; //TJsonObject end; function TEmailRPCProxy.AddAttachmentToMessage(const Token: string; const aMessageID: Int64; const aIsRelated: Boolean; const aAttachment: TJsonObject): TJDOJsonObject; var lReq: IJSONRPCRequest; lResp: IJSONRPCResponse; begin lReq := TJSONRPCRequest.Create(NewReqID, 'AddAttachmentToMessage'); lReq.Params.Add(Token); lReq.Params.Add(aMessageID, TJSONRPCParamDataType.pdtLongInteger); lReq.Params.Add(aIsRelated); lReq.Params.Add(aAttachment); lResp := fRPCExecutor.ExecuteRequest(lReq); Result := lResp.ResultAsJSONObject.Clone as TJDOJsonObject; //TJsonObject end; function TEmailRPCProxy.CompleteMessage(const Token: string; const aMessageID: Int64): TJDOJsonObject; var lReq: IJSONRPCRequest; lResp: IJSONRPCResponse; begin lReq := TJSONRPCRequest.Create(NewReqID, 'CompleteMessage'); lReq.Params.Add(Token); lReq.Params.Add(aMessageID, TJSONRPCParamDataType.pdtLongInteger); lResp := fRPCExecutor.ExecuteRequest(lReq); Result := lResp.ResultAsJSONObject.Clone as TJDOJsonObject; //TJsonObject end; function TEmailRPCProxy.BulkSendMessages(const Token: string; const aMetaMessage: TJsonObject; const aBulkMessagesData: TJsonObject): TJDOJsonObject; var lReq: IJSONRPCRequest; lResp: IJSONRPCResponse; begin lReq := TJSONRPCRequest.Create(NewReqID, 'BulkSendMessages'); lReq.Params.Add(Token); lReq.Params.Add(aMetaMessage); lReq.Params.Add(aBulkMessagesData); lResp := fRPCExecutor.ExecuteRequest(lReq); Result := lResp.ResultAsJSONObject.Clone as TJDOJsonObject; //TJsonObject end; function TEmailRPCProxy.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 TEmailRPCProxy.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.