diff --git a/lib/Api/EventManagement.php b/lib/Api/EventManagement.php new file mode 100644 index 0000000000000000000000000000000000000000..babd6407e8459a32120f5bdfab605e1853eae440 --- /dev/null +++ b/lib/Api/EventManagement.php @@ -0,0 +1,80 @@ +<?php + +namespace jards\eventsapiclient\Swagger\Client\Api; + +use jards\eventsapiclient\Swagger\Client\Model\Event; +use jards\eventsapiclient\Swagger\Client\Api\EventsApi; + +class EventManagement{ + + /** + * Send an event to a event receiver. + * @param string $name name of the event + * @param string $description description of the event + * @param string $baseURL the root URL of the event receiver REST API + * @param string $certFile path to certificate file to use or null to call URL without certificate + * @param string $certKey path to certificate key file, null to avoid usage of key + * @param string $certPassphrase path to passphrase file for key file, null for no passphrase + * @param int $timeout time out in seconds until curl call is aborted + * @param \jards\eventsapiclient\Swagger\Client\ApiException $exception output parameter, if exception occurs + * + * @return boolean true on success, false on error + */ + public function sendEvent($name, $description, $baseURL='http://localhost/myapps/EventsAPI/rest/events', $certFile = null, $certKey = null, $certPassphrase = null, $timeout = null, &$exception=null){ + + $event = new Event(); + $event->setName($name); + $event->setDescription($description); + $event->setDate(new \DateTime()); + + return $this->sendEventObject($event, $baseURL, $certFile, $certKey, $certPassphrase, $timeout, $exception); + } + + /** + * Send an event according to swagger API model. + * Prepare any event you like, then send it with this function. + * + * @param Event $eventObject the event object you would like to send + * @param string $baseURL the root URL of the event receiver REST API + * @param string $certFile path to certificate file to use or null to call URL without certificate + * @param string $certKey path to certificate key file, null to avoid usage of key + * @param string $certPassphrase path to passphrase file for key file, null for no passphrase + * @param int $timeout time out in seconds until curl call is aborted + * @param \jards\eventsapiclient\Swagger\Client\ApiException $exception output parameter, if exception occurs + * + * @return boolean true on success, false on error + */ + public function sendEventObject($eventObject, $baseURL='http://localhost/myapps/EventsAPI/rest/events', $certFile = null, $certKey = null, $certPassphrase = null, $timeout = null, &$exception=null){ + date_default_timezone_set ( 'Europe/Amsterdam' ); + $apiClient = new \jards\eventsapiclient\Swagger\Client\ApiClient (); + $apiClient->getConfig ()->setHost ( $baseURL ); + + if(! empty($certFile)){ + $apiClient->getConfig ()->setCertificate($certFile); + } + if(! empty($certKey)){ + $apiClient->getConfig ()->setCertificateKey($certKey); + } + if(! empty($certPassphrase)){ + $apiClient->getConfig ()->setCertificatePassphrase($certPassphrase); + } + if(! empty($timeout)){ + $apiClient->getConfig()->setCurlConnectTimeout($timeout); + } + + $eventsApi = new EventsApi($apiClient); + + try{ + $eventsApi->eventsPost($eventObject); + } + catch(\jards\eventsapiclient\Swagger\Client\ApiException $e){ + $exception = $e; + return false; + } + + return true; + } + +} + +?>