"""
Module contains luna-sender client adapted for usage in lambda
"""
from luna3.sender.wsclient import LunaWSClient
[docs]
class Sender:
"""Luna-sender client"""
[docs]
def __init__(self, senderClient: LunaWSClient, accountId: str):
self._accountId = accountId
self._senderClient = senderClient
[docs]
def getAddress(self) -> str:
"""Get luna sender address"""
return self._senderClient.baseUri
[docs]
def publish(
self,
events: list[dict],
*,
handlerId: str,
eventCreateTime: str,
eventEndTime: str,
raiseError=True,
**kwargs,
):
"""
Publish user generated events.
Args:
events: user generated events to be published
handlerId: event handler id
eventCreateTime: event creation time
eventEndTime: event end time
raiseError: whether to raise LunaApiException in case of failure
"""
return self._senderClient.publish(
events=events,
accountId=self._accountId,
handlerId=handlerId,
eventCreateTime=eventCreateTime,
eventEndTime=eventEndTime,
raiseError=raiseError,
**kwargs,
)