public static function getRevision($uri, $poid, $roid, $userId = -1) { $server = BIMsie::getServerByUri($uri, $userId); if ($server === false) { return false; } else { $userId = $userId == -1 ? get_current_user_id() : $userId; $bimsieCache = BIMsie::getCacheByUri($uri, $userId); if ($bimsieCache === false || !isset($bimsieCache['projects'][$poid])) { $project = BIMsie::getProject($uri, $poid, $userId); if ($project) { $bimsieCache = BIMsie::getCacheByUri($uri, $userId); if (isset($server['token']) && isset($server['tokenValid']) && $server['tokenValid'] > time()) { $revisions = BIMsie::request($server['uri'], $server['token'], 'Bimsie1ServiceInterface', 'getAllRevisionsOfProject', array('poid' => $poid)); $error = BIMsie::getErrorMessage($revisions); if ($error === false && isset($revisions) && isset($revisions->response) && isset($revisions->response->result)) { $revisions = $revisions->response->result; $bimsieCache['projects'][$poid]->revisions = array(); foreach ($revisions as $revision) { $revision->dateString = date('d-m-Y H:i', $revision->date * 0.001); $revision->name = $revision->dateString . ' - ' . $revision->comment; $bimsieCache['projects'][$poid]->revisions[$revision->oid] = $revision; } BIMsie::updateCache($bimsieCache, $userId); if (isset($bimsieCache['projects'][$poid]->revisions[$roid])) { return $bimsieCache['projects'][$poid]->revisions[$roid]; } else { return false; } } else { return false; } } else { return false; } } else { return false; } } elseif (isset($bimsieCache['projects']) && isset($bimsieCache['projects'][$poid]) && isset($bimsieCache['projects'][$poid]->revisions) && isset($bimsieCache['projects'][$poid]->revisions[$roid])) { return $bimsieCache['projects'][$poid]->revisions[$roid]; } else { if (!isset($bimsieCache['projects'][$poid]->revisions) || !isset($bimsieCache['projects'][$poid]->revisions[$roid])) { if (isset($server['token']) && isset($server['tokenValid']) && $server['tokenValid'] > time()) { $revisions = BIMsie::request($server['uri'], $server['token'], 'Bimsie1ServiceInterface', 'getAllRevisionsOfProject', array('poid' => $poid)); $error = BIMsie::getErrorMessage($revisions); if ($error === false && isset($revisions) && isset($revisions->response) && isset($revisions->response->result)) { $revisions = $revisions->response->result; $bimsieCache['projects'][$poid]->revisions = array(); foreach ($revisions as $revision) { $revision->dateString = date('d-m-Y H:i', $revision->date * 0.001); $revision->name = $revision->dateString . ' - ' . $revision->comment; $bimsieCache['projects'][$poid]->revisions[$revision->oid] = $revision; } BIMsie::updateCache($bimsieCache, $userId); if (isset($bimsieCache['projects'][$poid]->revisions[$roid])) { return $bimsieCache['projects'][$poid]->revisions[$roid]; } else { return false; } } else { return false; } } else { return false; } } else { return false; } } } }
} } } else { if (isset($response['error'])) { $response['error'] .= '<br />' . $error; } else { $response['error'] = $error; } } } } $response['projects'] = $projectsLackingRevision; } elseif ($_POST['method'] == 'getRevisions') { // set this project for this issue and retrieve a list of revisions for this project from the BIMsie server $poid = isset($_POST['poid']) ? intval($_POST['poid']) : -1; $BIMsieResponse = BIMsie::request($uri, $token, 'Bimsie1ServiceInterface', 'getAllRevisionsOfProject', array('poid' => $poid)); $error = BIMsie::getErrorMessage($BIMsieResponse); if ($error === false && isset($BIMsieResponse->response) && isset($BIMsieResponse->response->result)) { $response['revisions'] = $BIMsieResponse->response->result; foreach ($response['revisions'] as $key => $revision) { if (isset($revision->date) && is_numeric($revision->date)) { $response['revisions'][$key]->dateString = date('d-m-Y H:i', $revision->date * 0.001); } else { $response['revisions'][$key]->dateString = __('unknown', 'bim-bcf-management'); } } } else { $response['error'] = $error; } } } else {