juggl/public/api/services/jsonBuilder.inc.php

132 lines
3.1 KiB
PHP

<?php
class JsonBuilder
{
function __construct()
{
$this->jsonData = array();
}
function getJson()
{
return json_encode($this->jsonData, JSON_FORCE_OBJECT);
}
function getArray()
{
return $this->jsonData;
}
function addRecords(array $records)
{
if ($records === null) return;
$columns = array(
"record_id" => "",
"start_time" => "",
"end_time" => "",
"duration" => "",
"user_id" => "",
"project_id" => "",
"running" => "",
"tags" => "",
"start_device_id" => ""
);
$this->jsonData['records'] = array();
foreach ($records as $record) {
$this->jsonData['records'][] = $this->createJsonArray($record, $columns);
}
return $this;
}
function addProjects(array $projects)
{
if ($projects === null) return;
$columns = array(
"project_id" => "",
"name" => "",
"user_id" => "",
"start_date" => "",
"duration" => "",
"record_count" => "",
"color" => "",
"visible" => ""
);
$this->jsonData['projects'] = array();
foreach ($projects as $project) {
$this->jsonData['projects'][] = $this->createJsonArray($project, $columns);
}
return $this;
}
function addUsers(array $users)
{
if ($users === null) return;
$columns = array(
"user_id" => "",
"name" => "",
"mail_address" => ""
);
$this->jsonData['users'] = array();
foreach ($users as $user) {
$this->jsonData['users'][] = $this->createJsonArray($user, $columns);
}
return $this;
}
function addRecordTags(array $record_tags)
{
if ($record_tags === null) return;
$columns = array(
"record_tag_id" => "",
"name" => "",
"user_id" => "",
"visible" => "",
"bundle" => ""
);
$this->jsonData['record_tags'] = array();
foreach ($record_tags as $tag) {
$this->jsonData['record_tags'][] = $this->createJsonArray($tag, $columns);
}
return $this;
}
function addStats(array $stats)
{
if ($stats === null) return;
$columns = array(
"name" => "",
"project_id" => "",
"color" => "",
"visible" => "",
"duration" => "",
"record_count" => "",
"date" => ""
);
$this->jsonData['stats'] = array();
foreach ($stats as $tag) {
$this->jsonData['stats'][] = $this->createJsonArray($tag, $columns);
}
return $this;
}
private function createJsonArray(array $data, array $columns)
{
$jsonArray = array();
foreach ($columns as $key => $column) {
if ($column === "") {
$column = $key;
}
$jsonArray[$key] = $data[$column];
}
return $jsonArray;
}
}