-
Roberto Milton Scheffel authored
Updates to implement finish, process MultiSmartData for v1.2 (Mobile) SmartData and MultiValue workflow support.
Roberto Milton Scheffel authoredUpdates to implement finish, process MultiSmartData for v1.2 (Mobile) SmartData and MultiValue workflow support.
put_batch.php 2.29 KiB
<?php
namespace SmartData;
require_once('../bin/smartdata/SmartAPI.php');
require_once('../bin/smartdata/Logger.php');
http_response_code(HttpStatusCode::BAD_REQUEST);
$compl = array();
if(isset($_GET['version'])) $compl = array_merge($compl, array('version' => $_GET['version']));
if(isset($_GET['unit'])) $compl = array_merge($compl, array('unit' => $_GET['unit']));
//if(isset($_GET['value'])) $compl = array_merge($compl, array('value' => $_GET['value']));
if(isset($_GET['error'])) $compl = array_merge($compl, array('error' => $_GET['error']));
if(isset($_GET['confidence'])) $compl = array_merge($compl, array('confidence' => $_GET['confidence']));
if(isset($_GET['x'])) $compl = array_merge($compl, array('x' => $_GET['x']));
if(isset($_GET['y'])) $compl = array_merge($compl, array('y' => $_GET['y']));
if(isset($_GET['z'])) $compl = array_merge($compl, array('z' => $_GET['z']));
//if(isset($_GET['t'])) $compl = array_merge($compl, array('t' => $_GET['t']));
if(isset($_GET['dev'])) $compl = array_merge($compl, array('dev' => $_GET['dev']));
//Logger::print_r($compl, true);
try {
$content = file_get_contents('php://input');
if(is_array(json_decode($content, true))) {
// Is JSON
throw new Exception\NotImplementedException("JSON-based import in batch has not been implemented yet");
} else {
// Is Binary
if(!REQUEST_CERT){
throw new Exception\BadRequestException("!CERT > For batch import, the user must use a valid certificate");
}
$series = Series::unpack($content);
$smartdata_array = array();
while($content) {
$data = SmartData::unpack($content, $compl);
if($data instanceof SmartData)
array_push($smartdata_array, $data);
}
$db = new Backend();
if(!$db->insertBatch($series, ...$smartdata_array)) {
throw new Exception\InsertionFailedException("Insertion Failed");
}
}
}catch(Exception\CustomException $e){
http_response_code($e->getHTTPCodeError());
Logger::exception($e);
return false;
}catch(\Exception $e){
http_response_code(HttpStatusCode::BAD_REQUEST);
Logger::exception($e);
return false;
}
http_response_code(HttpStatusCode::NO_CONTENT);