in confidence/confidence.py [0:0]
def _send_event_internal(self, event_name: str, data: Dict[str, FieldType]) -> None:
current_time = datetime.utcnow().isoformat() + "Z"
request_body = {
"clientSecret": self._client_secret,
"sendTime": current_time,
"events": [
{
"eventDefinition": f"eventDefinitions/{event_name}",
"payload": {"context": {**self.context}, **data},
"eventTime": current_time,
}
],
"sdk": {"id": "SDK_ID_PYTHON_CONFIDENCE", "version": __version__},
}
event_url = "https://events.confidence.dev/v1/events:publish"
headers = {"Content-Type": "application/json", "Accept": "application/json"}
response = requests.post(event_url, json=request_body, headers=headers)
if response.status_code == 200:
json = response.json()
json_errors = json.get("errors")
if json_errors:
self.logger.warn("events emitted with errors:")
for error in json_errors:
self.logger.warn(error)
else:
self.logger.warn(
f"Track event {event_name} failed with status code"
+ f" {response.status_code} and reason: {response.reason}"
)