1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
<?php
# -- BEGIN LICENSE BLOCK ---------------------------------------
#
# This file is part of Dotclear 2.
#
# Copyright (c) 2003-2013 Olivier Meunier & Association Dotclear
# Licensed under the GPL version 2.0 license.
# See LICENSE file or
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
#
# -- END LICENSE BLOCK -----------------------------------------
if (!defined('DC_CONTEXT_ADMIN')) { return; }
/**
@ingroup PLUGIN_MAINTENANCE
@nosubgrouping
@brief Maintenance plugin rest service class.
Serve maintenance methods via Dotclear's rest API
*/
class dcMaintenanceRest
{
/**
* Serve method to do step by step task for maintenance.
*
* @param core <b>dcCore</b> dcCore instance
* @param get <b>array</b> cleaned $_GET
* @param post <b>array</b> cleaned $_POST
*
* @return <b>xmlTag</b> XML representation of response
*/
public static function step($core, $get, $post)
{
if (!isset($post['task'])) {
throw new Exception('No task ID');
}
if (!isset($post['code'])) {
throw new Exception('No code ID');
}
$maintenance = new dcMaintenance($core);
if (($task = $maintenance->getTask($post['task'])) === null) {
throw new Exception('Unknow task ID');
}
$task->code((integer) $post['code']);
if (($code = $task->execute()) === true) {
$maintenance->setLog($task->id());
$code = 0;
}
$rsp = new xmlTag('step');
$rsp->code = $code;
$rsp->title = html::escapeHTML($task->success());
return $rsp;
}
}
|