#352 use wat.webcraft-media.de api instead of local queries, display errors if they occur

This commit is contained in:
Ulf Gebhardt 2017-08-03 23:49:52 +02:00
parent 08e8fab663
commit 293551a530
7 changed files with 35 additions and 66 deletions

View File

@ -2,34 +2,40 @@
namespace SAI;
class saimod_webcraft_updates extends \SYSTEM\SAI\SaiModule {
public static function sai_mod__SAI_saimod_webcraft_updates($update = null, $project = null){
$vars = array('updates' => '', 'projects' => '', 'commits' => '');
$vars = array('updates' => '', 'projects' => '', 'commits' => '', 'error' => '');
$token = \SYSTEM\CONFIG\config::get(\config_ids::WEBCRAFT_BILLING_TOKEN);
$res = \SQL\WEBCRAFT_UPDATES_UPDATE::QQ(array('test/mojotrollz/%'));
while($row = $res->next()){
$row['time'] = \SYSTEM\time::time_ago_string(strtotime($row['time']));
$vars['updates'] .= \SYSTEM\PAGE\replace::replaceFile((new \PSAI('saimod_webcraft_updates/tpl/saimod_webcraft_updates_update.tpl'))->SERVERPATH(),$row);}
$project_row = null;
if($update){
$vars2 = array('project' => '', 'update' => $update);
$res = \SQL\WEBCRAFT_UPDATES_PROJECT::QQ(array($update, 'test/mojotrollz/%'));
while($row = $res->next()){
if($project && $row['path'] == $project){
$project_row = $row;}
$updates = json_decode(file_get_contents('https://wat.webcraft-media.de/api.php?call=updates&action=updates&token='.$token),true);
if($updates['status']){
foreach($updates['result'] as $row){
$row['time'] = \SYSTEM\time::time_ago_string(strtotime($row['time']));
$vars2['project'] .= \SYSTEM\PAGE\replace::replaceFile((new \PSAI('saimod_webcraft_updates/tpl/saimod_webcraft_updates_project.tpl'))->SERVERPATH(),$row);}
$vars['projects'] = \SYSTEM\PAGE\replace::replaceFile((new \PSAI('saimod_webcraft_updates/tpl/saimod_webcraft_updates_projects.tpl'))->SERVERPATH(),$vars2);
$vars['updates'] .= \SYSTEM\PAGE\replace::replaceFile((new \PSAI('saimod_webcraft_updates/tpl/saimod_webcraft_updates_update.tpl'))->SERVERPATH(),$row);
}
} else {
$vars['error'] .= 'Error: '.$updates['result']['message'].'<br>';}
if($update){
$projects = json_decode(file_get_contents('https://wat.webcraft-media.de/api.php?call=updates&action=projects'.'&update='.$update.'&token='.$token),true);
if($projects['status']){
$vars2 = array('project' => '', 'update' => $update);
foreach($projects['result'] as $row){
$row['time'] = \SYSTEM\time::time_ago_string(strtotime($row['time']));
$vars2['project'] .= \SYSTEM\PAGE\replace::replaceFile((new \PSAI('saimod_webcraft_updates/tpl/saimod_webcraft_updates_project.tpl'))->SERVERPATH(),$row);}
$vars['projects'] = \SYSTEM\PAGE\replace::replaceFile((new \PSAI('saimod_webcraft_updates/tpl/saimod_webcraft_updates_projects.tpl'))->SERVERPATH(),$vars2);
} else {
$vars['error'] .= 'Error: '.$updates['result']['message'].'<br>';}
}
if($project){
$vars3 = array('commit' => '', 'project' => $project);
$min = \SQL\WEBCRAFT_UPDATES_COMMIT_SELECT::Q1(array($project_row['git'],$project_row['commit_last']))['id']+1;
$max = \SQL\WEBCRAFT_UPDATES_COMMIT_SELECT::Q1(array($project_row['git'],$project_row['commit']))['id'];
$res = \SQL\WEBCRAFT_UPDATES_COMMIT::QQ(array($project_row['git'],$min,$max));
while($row = $res->next()){
$row['time'] = \SYSTEM\time::time_ago_string(strtotime($row['time']));
$vars3['commit'] .= \SYSTEM\PAGE\replace::replaceFile((new \PSAI('saimod_webcraft_updates/tpl/saimod_webcraft_updates_commit.tpl'))->SERVERPATH(),$row);}
$vars['commits'] = \SYSTEM\PAGE\replace::replaceFile((new \PSAI('saimod_webcraft_updates/tpl/saimod_webcraft_updates_commits.tpl'))->SERVERPATH(),$vars3);
$commits = json_decode(file_get_contents('https://wat.webcraft-media.de/api.php?call=updates&action=commits'.'&token='.$token.'&update='.$update.'&project='.$project),true);
if($commits['status']){
$vars3 = array('commit' => '', 'project' => $project);
foreach($commits['result'] as $row){
$row['time'] = \SYSTEM\time::time_ago_string(strtotime($row['time']));
$vars3['commit'] .= \SYSTEM\PAGE\replace::replaceFile((new \PSAI('saimod_webcraft_updates/tpl/saimod_webcraft_updates_commit.tpl'))->SERVERPATH(),$row);}
$vars['commits'] = \SYSTEM\PAGE\replace::replaceFile((new \PSAI('saimod_webcraft_updates/tpl/saimod_webcraft_updates_commits.tpl'))->SERVERPATH(),$vars3);
} else {
$vars['error'] .= 'Error: '.$updates['result']['message'].'<br>';}
}
$vars = array_merge($vars, \SYSTEM\PAGE\text::tag('time'));

View File

@ -1,4 +1,3 @@
<?php
\SYSTEM\autoload::registerFolder(dirname(__FILE__),'SQL');
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/qq/','SQL');
\SYSTEM\SQL\setup::register('SQL\\DATA_SAIMOD_WEBCRAFT_UPDATES');

View File

@ -1,10 +0,0 @@
<?php
namespace SQL;
class WEBCRAFT_UPDATES_COMMIT extends \SYSTEM\DB\QP {
public static function get_class(){return \get_class();}
public static function mysql(){return
'SELECT `time`, `email`, `author`, `log`, `commit` FROM host_wat.webcraft_update_commit'.
' WHERE `git` = ? AND (id BETWEEN ? AND ?)'.
' ORDER BY `time` DESC;';
}
}

View File

@ -1,9 +0,0 @@
<?php
namespace SQL;
class WEBCRAFT_UPDATES_COMMIT_SELECT extends \SYSTEM\DB\QP {
public static function get_class(){return \get_class();}
public static function mysql(){return
'SELECT id FROM host_wat.webcraft_update_commit'.
' WHERE `git` = ? AND `commit` = ?;';
}
}

View File

@ -1,10 +0,0 @@
<?php
namespace SQL;
class WEBCRAFT_UPDATES_PROJECT extends \SYSTEM\DB\QP {
public static function get_class(){return \get_class();}
public static function mysql(){return
'SELECT `time`, `path`, `git`, `commit`, `commit_last` FROM host_wat.webcraft_update_project'.
' WHERE `update` = ? AND `path` LIKE ?'.
' ORDER BY `time` ASC;';
}
}

View File

@ -1,12 +0,0 @@
<?php
namespace SQL;
class WEBCRAFT_UPDATES_UPDATE extends \SYSTEM\DB\QP {
public static function get_class(){return \get_class();}
public static function mysql(){return
'SELECT u.`time`, u.`commit`, u.`commit_last`, u.`complete` FROM host_wat.`webcraft_update` as u'.
' RIGHT JOIN host_wat.`webcraft_update_project` as p ON u.`commit` = p.`update`'.
' WHERE `path` LIKE ?'.
' GROUP BY u.`commit`'.
' ORDER BY u.`time` DESC;';
}
}

View File

@ -22,5 +22,10 @@
</table>
${projects}
${commits}
</div>
</div>
</div>
<div class="row-fluid">
<div class="col-md-12">
${error}
</div>
</div>