Skip to content
Snippets Groups Projects
Commit 87f6d39f authored by Benjamin Ledel's avatar Benjamin Ledel
Browse files

* init

parent 9fd77f40
Branches
No related tags found
No related merge requests found
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/dashboard-php-helper.iml" filepath="$PROJECT_DIR$/.idea/dashboard-php-helper.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="MessDetectorOptionsConfiguration">
<option name="transferred" value="true" />
</component>
<component name="PHPCSFixerOptionsConfiguration">
<option name="transferred" value="true" />
</component>
<component name="PHPCodeSnifferOptionsConfiguration">
<option name="highlightLevel" value="WARNING" />
<option name="transferred" value="true" />
</component>
<component name="PhpStanOptionsConfiguration">
<option name="transferred" value="true" />
</component>
<component name="PsalmOptionsConfiguration">
<option name="transferred" value="true" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>
\ No newline at end of file
<?php
class PolarisAnalyticsEngineHelper
{
private $page_size = 100;
private $baseUrl = "https://polaris.digitallearning.gmbh";
private $analytics_token;
public function __construct($analytics_token, $baseUrl = null)
{
$this->analytics_token = $analytics_token;
if ($baseUrl != null)
$this->baseUrl = $baseUrl;
}
public function getStatementsPage($last_object_id = null)
{
if ($last_object_id)
$payload = [
"page_size" => $this->page_size,
"last_object_id" => $last_object_id,
];
else
$payload = [
"page_size" => $this->page_size,
];
$response = $this->postRequest("/api/v1/provider/data",json_encode($payload));
return $response->statements;
}
public function getStatements()
{
$statements = array();
$read_all_pages = false;
$last_object_id = null;
while (!$read_all_pages) {
$page_statements = $this->getStatementsPage($last_object_id);
$statements = array_merge($statements, $page_statements);
if (count($page_statements) == 0) {
$read_all_pages = true;
} else {
$last_object_id = $statements[-1]["_id"];
}
}
return $statements;
}
public function getExistingResult()
{
}
public function saveResult($result, $description = null, $context_id = null)
{
$payload = [];
$payload["result"] = $result;
if($description)
{
$payload["description"] = $description;
}
if($context_id)
{
$payload["context_id"] = $context_id;
}
print_r($payload);
return $this->postRequest("/api/v1/provider/store-result",json_encode($payload));
}
function getRequest($url, $data)
{
$params = http_build_query($data);
return file_get_contents($this->baseUrl . $url . "?" . $params);
}
function postRequest($url, $data)
{
$curlHandle = curl_init($this->baseUrl . $url);
$header = array();
$header[] = 'Content-Type: application/json';
$header[] = 'Authorization: Basic ' . $this->analytics_token;
curl_setopt($curlHandle, CURLOPT_HTTPHEADER, $header);
curl_setopt($curlHandle, CURLOPT_POSTFIELDS, $data);
curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curlHandle, CURLOPT_FAILONERROR, true);
$curlResponse = curl_exec($curlHandle);
if (curl_errno($curlHandle)) {
$error_msg = curl_error($curlHandle);
}
if (isset($error_msg)) {
print_r($curlResponse);
print_r($error_msg);
}
curl_close($curlHandle);
return json_decode($curlResponse);
}
}
\ No newline at end of file
<?php
require "PolarisAnalyticsEngineHelper.php";
class PolarisAnalyticsEngineHelperTest
{
private $helper;
public function __construct($analytics_token)
{
$this->helper = new PolarisAnalyticsEngineHelper($analytics_token);
}
public function testGetStatements()
{
$statements = $this->helper->getStatements();
print_r("All statements \n\r");
print_r($statements);
}
public function testSaveResults($user)
{
$result = [
"current_time" => strtotime("now"),
"user" => $user // only for test
];
$resultResponse = $this->helper->saveResult($result,"test description",$user);
print_r($resultResponse);
}
}
$test = new PolarisAnalyticsEngineHelperTest("0838b91a5d71822ce87bab1de5dd65c52add4865dd2bbcb372604163940285c4");
$test->testGetStatements();
$test->testSaveResults("user1@polaris.com");
$test->testSaveResults("user2@polaris.com");
$test->testSaveResults("user3@polaris.com");
\ No newline at end of file
<?php
class PolarisDashboardHelper
{
private $baseUrl = "https://polaris.digitallearning.gmbh";
private $application_token;
public function __construct($application_token ,$baseUrl = null)
{
$this->application_token = $application_token;
if($baseUrl != null)
$this->baseUrl = $baseUrl;
}
public function fetchVisualisationToken($engines = [], $context_id = null, $engines_with_context = [])
{
if($context_id != null) {
$response = $this->postRequest("/api/v1/provider/visualization-tokens/create",
json_encode(["engines" => $engines, "context_id" => $context_id, "engines_with_context" => $engines_with_context]));
} else {
$response = $this->postRequest("/api/v1/provider/visualization-tokens/create",
json_encode(["engines" => $engines]));
}
return $response->token;
}
public function fetchDashboardResult($visualisation_token)
{
$response = $this->getRequest("/api/v1/provider/result",$visualisation_token);
return $response;
}
function getRequest($url,$visualisation_token)
{
$curlHandle = curl_init($this->baseUrl.$url);
$header = array();
$header[] = 'Content-Type: application/json';
$header[] = 'Authorization: Basic '.$visualisation_token;
curl_setopt($curlHandle, CURLOPT_HTTPHEADER,$header);
curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curlHandle, CURLOPT_FAILONERROR, true);
$curlResponse = curl_exec($curlHandle);
if (curl_errno($curlHandle)) {
$error_msg = curl_error($curlHandle);
}
if (isset($error_msg)) {
print_r($curlResponse);
print_r($error_msg);
}
curl_close($curlHandle);
return json_decode($curlResponse);
}
function postRequest($url,$data)
{
$curlHandle = curl_init($this->baseUrl.$url);
$header = array();
$header[] = 'Content-Type: application/json';
$header[] = 'Authorization: Basic '.$this->application_token;
curl_setopt($curlHandle, CURLOPT_HTTPHEADER,$header);
curl_setopt($curlHandle, CURLOPT_POSTFIELDS, $data);
curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curlHandle, CURLOPT_FAILONERROR, true);
$curlResponse = curl_exec($curlHandle);
if (curl_errno($curlHandle)) {
$error_msg = curl_error($curlHandle);
}
if (isset($error_msg)) {
print_r($curlResponse);
print_r($error_msg);
}
curl_close($curlHandle);
return json_decode($curlResponse);
}
}
\ No newline at end of file
<?php
require "PolarisDashboardHelper.php";
class PolarisDashboardHelperTest
{
private $helper;
public function __construct($token)
{
$this->helper = new PolarisDashboardHelper($token);
}
public function testFetchVisualisationToken()
{
$visualisationToken = $this->helper->fetchVisualisationToken(["test-engine"]);
//print_r("Token: ".$visualisationToken);
return $visualisationToken;
}
public function testFetchAnalyticsResult($visualisationToken)
{
$result = $this->helper->fetchDashboardResult($visualisationToken);
print_r($result);
}
public function testFetchVisualisationTokenWithContext($user)
{
$visualisationToken = $this->helper->fetchVisualisationToken([],$user,["test-engine"]);
//print_r("Token: ".$visualisationToken);
return $visualisationToken;
}
}
$test = new PolarisDashboardHelperTest("27dd35314d73c7618945af9ac3152ecfcb9d1992ead2bdc562409d01ed456f6d");
$visualisationToken = $test->testFetchVisualisationToken();
$test->testFetchAnalyticsResult($visualisationToken);
$visualisationToken = $test->testFetchVisualisationTokenWithContext("user2@polaris.com");
$test->testFetchAnalyticsResult($visualisationToken);
\ No newline at end of file
<?php
class PolarisProviderHelper
{
private $baseUrl = "https://polaris.digitallearning.gmbh";
private $application_token;
public function __construct($application_token ,$baseUrl = null)
{
$this->application_token = $application_token;
if($baseUrl != null)
$this->baseUrl = $baseUrl;
}
public function addStatements($statements)
{
}
}
\ No newline at end of file
<?php
require "PolarisProviderHelper.php";
class PolarisProviderHelperTest
{
private $helper;
public function __construct($token)
{
$this->helper = new PolarisProviderHelper($token);
}
public function testAddStatements()
{
}
}
$test = new PolarisProviderHelperTest();
$test->testAddStatements();
\ No newline at end of file
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment