Merge pull request #2547 from FELDSAM-INC/feldsam/json-api

JSON API Consume json in request body.
This commit is contained in:
André Peters 2019-05-10 20:37:37 +02:00 committed by GitHub
commit f0d29ba8ef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

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'