JSON API Consume json in request body.

Draft docs https://feldhostmailhosting.docs.apiary.io

Signed-off-by: Kristián Feldsam <feldsam@gmail.com>
master
Kristián Feldsam 2019-04-20 21:50:24 +02:00
parent 5be4885c15
commit be2877c875
1 changed files with 36 additions and 0 deletions

View File

@ -64,6 +64,42 @@ if (isset($_SESSION['mailcow_cc_role']) || isset($_SESSION['pending_mailcow_cc_u
$object = (isset($query[2])) ? $query[2] : null;
$extra = (isset($query[3])) ? $query[3] : null;
// accept json in request body
if($_SERVER['HTTP_CONTENT_TYPE'] === 'application/json') {
$request = file_get_contents('php://input');
$requestDecoded = json_decode($request, true);
// check for valid json
if($action != 'get' && $requestDecoded === null) {
echo json_encode(array(
'type' => 'error',
'msg' => 'Request body doesn\'t contain valid json!'
));
exit;
}
// add
if($action == 'add') {
$_POST['attr'] = $request;
}
// edit
if($action == 'edit') {
$_POST['attr'] = json_encode($requestDecoded['attr']);
$_POST['items'] = json_encode($requestDecoded['items']);
}
// delete
if($action == 'delete') {
$_POST['items'] = $request;
}
unset($_SESSION['return']);
unset($_SESSION['success']);
unset($_SESSION['danger']);
unset($_SESSION['error']);
}
$request_incomplete = json_encode(array(
'type' => 'error',
'msg' => 'Cannot find attributes in post data'