headers4tickets = ["apiToken: ". $this->token4monitor , "Content-Type: application/json"]; $this->headers4devices = ["apiToken: ". $this->token4devices , "Content-Type: application/json"]; $this->cookieFileLocation = dirname(__FILE__).'/cookie.txt'; $this->client = new \GuzzleHttp\Client([ 'base_uri' => $this->tanssurl, 'debug' => false, 'verify' => false , "Content-Type" => "application/json;charset=ISO-8859-1"]); } public function login($username,$password,$refreshToken="") { if ($refreshToken=="") { $headers=["user"=> $username , "password" => $password ]; } else { $headers=["user" => $username , "password" => $password, "logintoken" => $refreshToken]; } $response = $this->client->request( 'GET', '/backend/api/v1/user/login', ['headers' => $headers] ); // Ergebnisse ermitteln $statuscode = $response->getStatusCode(); $header = $response->getHeaders(); $body = json_decode($response->getBody()->getContents()); // Ergebnis Object bauen $ergobj = (object) ["statuscode" => $statuscode, "header" => $header, "body" => $body]; if ($ergobj->statuscode == 200 && $ergobj->body->meta->text <> "Unsuccesful login attempt") { $this->logintoken = $ergobj->body->content->apiKey; $this->userHeader = ["apiToken" => $ergobj->body->content->apiKey]; $this->username = $username; $this->password = $password; $this->employeeId = $ergobj->body->content->employeeId; $this->expire = $ergobj->body->content->expire; $retvalue = 200; } else { $this->logintoken = ""; $this->username = ""; $this->password = ""; $this->userHeader = ""; $this->employeeId = 0; $this->expire = 0; $retvalue = 403; } return $retvalue; } public function readsession(&$session) { $this->loggedin = $session['loggedin']; $this->logintoken = $session['id']; $this->userHeader = $session["userHeader"]; $this->username = $session["username"]; $this->password = $session["password"]; $this->employeeId = $session["employeeId"]; $this->expire = $session["expire"]; } public function writesession(&$session) { $session['loggedin'] = $this->loggedin; $session['id'] = $this->logintoken; $session["userHeader"] = $this->userHeader; $session["name"] = $this->username; $session["password"] = $this->password; $session["employeeId"] = $this->employeeId; $session["expire"] = $this->expire; } public function ticketlist() { try { $response = $this->client->request( 'GET', '/backend/api/v1/tickets/own', ['headers' => $this->userHeader] ); $statuscode = $response->getStatusCode(); $header = $response->getHeaders(); $body = json_decode($response->getBody()->getContents()); $ergobj = (object) ["statuscode" => $statuscode, "header" => $header, "body" => $body]; if ($ergobj->statuscode == 200) { $retvalue = $ergobj; } else { $retvalue = (object)[]; } } catch (Exception $e) { $retvalue = (object)[]; echo "
Fehler: "; echo Psr7\Message::toString($e->getRequest()); echo Psr7\Message::toString($e->getResponse()); echo ""; } return $retvalue; } public function ticketlistAll() { try { $response = $this->client->request( 'GET', '/backend/api/v1/tickets/technician', ['headers' => $this->userHeader] ); $statuscode = $response->getStatusCode(); $header = $response->getHeaders(); $body = json_decode($response->getBody()->getContents()); $ergobj = (object) ["statuscode" => $statuscode, "header" => $header, "body" => $body]; if ($ergobj->statuscode == 200) { $retvalue = $ergobj; } else { $retvalue = (object)[]; } } catch (Exception $e) { $retvalue = (object)[]; echo "
Fehler: "; echo Psr7\Message::toString($e->getRequest()); echo Psr7\Message::toString($e->getResponse()); echo ""; } return $retvalue; } public function timestamp() { try { $response = $this->client->request( 'GET', '/backend/api/v1/timestamps', ['headers' => $this->userHeader] ); $statuscode = $response->getStatusCode(); $header = $response->getHeaders(); $body = json_decode($response->getBody()->getContents()); $ergobj = (object) ["statuscode" => $statuscode, "header" => $header, "body" => $body]; if ($ergobj->statuscode == 200) { $retvalue = $ergobj; } else { $retvalue = (object)[]; } } catch (Exception $e) { $retvalue = (object)[]; echo "
Fehler: "; echo Psr7\Message::toString($e->getRequest()); echo Psr7\Message::toString($e->getResponse()); echo ""; } return $retvalue; } public function settimestamp($state) { $body = [ "employeeId" => $this->employeeId, "state" => strtoupper($state), "type" => "WORK", "date" => time(), "autoPause" => true ]; var_dump($body); try { $response = $this->client->request( 'POST', '/backend/api/v1/timestamps', ['headers' => $this->userHeader, 'json' => $body, "query" => "autoPause=true" ] ); $statuscode = $response->getStatusCode(); $header = $response->getHeaders(); $body = json_decode($response->getBody()->getContents()); $ergobj = (object) ["statuscode" => $statuscode, "header" => $header, "body" => $body]; if ($ergobj->statuscode == 201) { $retvalue = $ergobj; } else { $retvalue = (object)[]; } } catch (Exception $e) { $retvalue = (object)[]; echo "
Fehler: "; echo Psr7\Message::toString($e->getRequest()); echo Psr7\Message::toString($e->getResponse()); echo ""; } return $retvalue; } public function getCalls($employeeId = 0) { $body = [ "timeframe" => [ "from" => (time() - (12 * 60 * 60)) , "to" => time() ], "numberFilters" => [], "showTrysAsWell" => true, "employeeId" => $employeeId , "numberInfos" => true ]; try { $response = $this->client->request( 'put', '/backend/api/calls/v1', ['headers' => [ "apiToken" => $this->token4phone, "Content-Type" => "application/json" ], 'json' => $body ] ); $statuscode = $response->getStatusCode(); $header = $response->getHeaders(); $body = json_decode($response->getBody()->getContents()); $ergobj = (object) ["statuscode" => $statuscode, "header" => $header, "body" => $body ]; if ($ergobj->statuscode == 200) { $retvalue = $ergobj; } else { $retvalue = (object)[]; } } catch (Exception $e) { $retvalue = (object)[]; echo "
Fehler: "; echo Psr7\Message::toString($e->getRequest()); echo Psr7\Message::toString($e->getResponse()); echo ""; } return $retvalue; } public function getChats($employeeId = 0) { $body = [ "employeeId" => $employeeId , "onlyExpectedTimeExpired" => false, "status" => "OPEN", "loadMessages" => "NONE", "showOnlyParticapatedChat" => true, "loadMessages" => "NONE" ]; try { $response = $this->client->request( 'PUT', '/backend/api/v1/chats', ['headers' => [ "apiToken" => $this->userHeader ] , 'json' => $body ] ); $statuscode = $response->getStatusCode(); $header = $response->getHeaders(); $body = json_decode($response->getBody()->getContents()); $ergobj = (object) ["statuscode" => $statuscode, "header" => $header, "body" => $body ]; if ($ergobj->statuscode == 200) { $retvalue = $ergobj; } else { $retvalue = (object)[]; } } catch (Exception $e) { $retvalue = (object)[]; echo "
Fehler: "; echo Psr7\Message::toString($e->getRequest()); echo Psr7\Message::toString($e->getResponse()); echo ""; } return $retvalue; } public function getTasks_API($employeeId = 0,$companyId = 0,$typeId = 0, $text = "") { $from = new DateTime('today midnight'); $to= new DateTime(); $to->add(new DateInterval('P7D')); $body = ["timeframe" => [ "from" => $from->getTimestamp(), "to" => $to->getTimestamp()] ]; ($employeeId>0) ? $body[] = ["employeeId" => $employeeId] : null; ($companyId>0) ? $body[] = ["companyId" => $companyId] : null; ($typeId>0) ? $body[] = ["typeId" => $typeId] : ["typeId" => 3]; ($text>0) ? $body[] = ["text" => $text] : null; //print_r($body); try { $response = $this->client->request( 'PUT', '/backend/api/remoteSupports/v1', ['headers' => [ "apiToken" => $this->token4remoteSupports] , 'json' => $body ] ); $statuscode = $response->getStatusCode(); $header = $response->getHeaders(); $body = json_decode($response->getBody()->getContents()); $ergobj = (object) ["statuscode" => $statuscode, "header" => $header, "body" => $body ]; //var_dump($this->logintoken); if ($ergobj->statuscode == 200) { $retvalue = $ergobj; } else { $retvalue = (object)[]; } } catch (Exception $e) { $retvalue = (object)[]; echo "
Fehler: "; echo Psr7\Message::toString($e->getRequest()); echo Psr7\Message::toString($e->getResponse()); echo ""; } return $retvalue; } public function timeDifference( $date_1, $date_2, $differenceFormat = "%m Monate %d Tage %H Stunden %i Minuten" ) { $datetime1 = new DateTime(); $datetime1->setTimestamp($date_1); $datetime2 = new DateTime(); $datetime2->setTimestamp($date_2); $interval = $datetime1->diff($datetime2); return $interval->format($differenceFormat); } function openMysql() { $this->db = new PDO("mysql:host=".$this->dbhost.";charset=utf8;dbname=tanss", $this->dbuser, $this->dbpass, array(PDO::ATTR_PERSISTENT => false, PDO::ATTR_TIMEOUT => 5, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); } public function getTasks($employeeId = 0) { $sql_termine = 'SELECT leistungen.ID, leistungen.datum as termin_start, leistungen.dauer*60+leistungen.datum as termin_ende, leistungen.dauer/60 as termin_dauer, leistungen.text as info, mitarbeiter.name as techniker, firmen.name as kunde, leistungen.tepID as typ FROM tanss.leistungen left outer join mitarbeiter on leistungen.mitarbeiterID = mitarbeiter.ID left outer join firmen on leistungen.firmenID = firmen.ID WHERE FROM_UNIXTIME(datum,"%Y-%m-%d") >= date(now()) AND leistungen.tepID in (2,3) ' . ( ($employeeId>0) ? "AND mitarbeiter.ID = ".$employeeId : "" ). ' ORDER BY datum ASC '; // Verbindung öffnen $this->openMysql(); // SQL ausführen: Termine $datasql = $this->db->query($sql_termine, PDO::FETCH_ASSOC); $data_termine = $datasql->fetchAll(PDO::FETCH_OBJ); //$dbcount_termine = $datasql->rowCount(); // Verbindung schließen $this->db = null; return $data_termine; } }