Skip to content
Snippets Groups Projects
Commit a0802ea9 authored by Carsten Karbach's avatar Carsten Karbach
Browse files

Switch to new namespace in eventsapiclient

parent 7ae271f5
Branches
Tags
No related merge requests found
......@@ -8,7 +8,7 @@
],
"require": {
"silex/silex": ">=2.0",
"jards/eventsapiclient": ">=1.0",
"jards/eventsapiclient": "=3.0",
"phpmailer/phpmailer": ">=6.0"
},
"require-dev": {
......
......@@ -4,15 +4,15 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
"content-hash": "41a9305ad2511010ee0643e4fd3aac1b",
"content-hash": "ab1d79ed4ca1b45fe369574aed53a416",
"packages": [
{
"name": "jards/eventsapiclient",
"version": "v2.4",
"version": "v3.0",
"source": {
"type": "git",
"url": "https://gitlab.version.fz-juelich.de/jards/EventsAPIClient.git",
"reference": "b36657b4f7bdf30e8f4f9c0ecf1d77af1a6bc085"
"reference": "ebb8d6f6e1d10fcebc46974e4b8886a489ef97fc"
},
"require": {
"ext-curl": "*",
......@@ -29,12 +29,12 @@
"type": "library",
"autoload": {
"psr-4": {
"Swagger\\Client\\": "lib/"
"jards\\eventsapiclient\\Swagger\\Client\\": "lib/"
}
},
"autoload-dev": {
"psr-4": {
"Swagger\\Client\\": "test/"
"jards\\eventsapiclient\\Swagger\\Client\\": "test/"
}
},
"license": [
......@@ -53,7 +53,7 @@
"sdk",
"swagger"
],
"time": "2018-01-15T15:34:22+00:00"
"time": "2018-01-16T07:04:14+00:00"
},
{
"name": "phpmailer/phpmailer",
......
<?php
require_once __DIR__.'/../vendor/autoload.php';
use Swagger\Client\Api\EventsApi;
use jards\eventsapiclient\Swagger\Client\Api\EventsApi;
/**
* Configure the rest api client for the OIDC server access.
*
* @return \Swagger\Client\ApiClient the configured api client with access to the REST api
* @return \jards\eventsapiclient\Swagger\Client\ApiClient the configured api client with access to the REST api
*/
function getDefaultApiClient() {
date_default_timezone_set ( 'Europe/Amsterdam' );
$apiClient = new \Swagger\Client\ApiClient ();
$apiClient = new \jards\eventsapiclient\Swagger\Client\ApiClient ();
$apiClient->getConfig ()->setHost ( 'http://localhost/myapps/EventsAPI/rest/events' );
return $apiClient;
}
......
......@@ -10,10 +10,12 @@ interface EventListener{
/**
* This is called for every new received event.
* The event is provided in two formats: simple JSON decoded object and Swagger deserialized model.
*
* @param object $event encoded object from JSON
* @param \jards\eventsapiclient\Swagger\Client\Model\Event $event deserialized event ino Swagger model
*/
public function handleEvent($event);
public function handleEvent($jsonevent, $apievent);
}
?>
\ No newline at end of file
......@@ -5,8 +5,8 @@ namespace jards\eventsapi;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\JsonResponse;
use Swagger\Client\Api\EventsApi;
use Swagger\Client\Model\Event;
use jards\eventsapiclient\Swagger\Client\Api\EventsApi;
use jards\eventsapiclient\Swagger\Client\Model\Event;
/**
* Listen for events.
......@@ -132,17 +132,27 @@ class EventManagement{
return new Response("New event sent.", 400);
}
$event = json_decode($eventJSON);
$jsonevent = json_decode($eventJSON);
if(!empty($event)){
if (json_last_error() > 0) { // if response is a string
return new Response("Could not read event.", 400);
}
$apiClient = new \jards\eventsapiclient\Swagger\Client\ApiClient ();
/**
* @var \jards\eventsapiclient\Swagger\Client\Model\Event $apievent
*/
$apievent = $apiClient->getSerializer()->deserialize($jsonevent, '\jards\eventsapiclient\Swagger\Client\Model\Event');
if(!empty($jsonevent)){
foreach($this->handlers as $handler){
if($handler instanceof EventListener){
$handler->handleEvent($event);
$handler->handleEvent($jsonevent, $apievent);
}
}
}
$name = $event->name;
$name = $apievent->getName();
$newID = $this->getMaxEventID()+1;
$fileName = $this->dataFolder.'/'.$newID.'.obj';
......@@ -169,7 +179,7 @@ class EventManagement{
public function sendEvent($name, $description, $baseURL='http://localhost/myapps/EventsAPI/rest/events', $certFile = null, $certKey = null, $certPassphrase = null){
date_default_timezone_set ( 'Europe/Amsterdam' );
$apiClient = new \Swagger\Client\ApiClient ();
$apiClient = new \jards\eventsapiclient\Swagger\Client\ApiClient ();
$apiClient->getConfig ()->setHost ( $baseURL );
if(! empty($certFile)){
......@@ -192,7 +202,7 @@ class EventManagement{
try{
$eventsApi->eventsPost($event);
}
catch(\Swagger\Client\ApiException $e){
catch(\jards\eventsapiclient\Swagger\Client\ApiException $e){
return false;
}
......
......@@ -53,11 +53,12 @@ class MailOnEventListener implements EventListener{
/**
*
* @param unknown $event
* {@inheritDoc}
* @see \jards\eventsapi\EventListener::handleEvent()
*/
public function handleEvent($event){
public function handleEvent($jsonevent, $apievent){
$config = parse_ini_file(__DIR__.'/../configs/mail.cnf');
$this->sendmail($config['TARGET'], 'New event received', json_encode($event));
$this->sendmail($config['TARGET'], 'New event received', json_encode($jsonevent));
}
}
......
......@@ -53,7 +53,9 @@ class EventManagementTest extends TestCase{
$url = file_get_contents(__DIR__.'/../configs/myurl.cnf');
$eventManagement->sendEvent('test event', 'This is only a test', $url);
$success = $eventManagement->sendEvent('test event', 'This is only a test', $url);
$this->assertTrue($success, "Event sending was not successful");
$newEventIDs = $this->getExistingEventIDs();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment