-
Notifications
You must be signed in to change notification settings - Fork 0
/
telemetry.php
57 lines (44 loc) · 1.36 KB
/
telemetry.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php
namespace Telemetry;
require_once("dataflows/dataflows.php");
define("TELEMETRY_DEBUG",1);
class Telemetry {
private $host = "https://data.telemetryapp.com/v1/data";
private $token = false;
private $dataFlows = array();
public function __construct($token) {
$this->token = $token;
}
public function addDataFlow($key, $dataFlow) {
$this->dataFlows[$key] = $dataFlow;
}
public function publish() {
$data = new \stdClass();
foreach($this->dataFlows as $key => $flow) {
$data->{$key} = $flow;
}
$payload->data = $data;
$jsonPayload = json_encode($payload);
if(defined("TELEMETRY_DEBUG") && TELEMETRY_DEBUG == 1) {
var_dump($jsonPayload);
}
if($this->token === false) {
throw new \Exception("Token not passed in.");
}
$additionalHeaders = "";
$process = curl_init($this->host);
curl_setopt($process, CURLOPT_HTTPHEADER, array('Content-Type: application/json', $additionalHeaders));
curl_setopt($process, CURLOPT_HEADER, 1);
curl_setopt($process, CURLOPT_USERPWD, $this->token);
curl_setopt($process, CURLOPT_TIMEOUT, 30);
curl_setopt($process, CURLOPT_POST, 1);
curl_setopt($process, CURLOPT_POSTFIELDS, $jsonPayload);
curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE);
$return = curl_exec($process);
curl_close($process);
if(defined("TELEMETRY_DEBUG") && TELEMETRY_DEBUG == 1) {
var_dump($return);
}
}
}
?>