public
nobgit
read
NobMail
Based on mailcow: dockerized
Languages
Repository composition by tracked source files.
PHP
49%
JavaScript
35%
HTML
9%
CSS
4%
Shell
2%
Python
1%
Lua
0%
Perl
0%
Ruby
0%
SCSS
0%
Create file
Wiki Documentation
Clone
https://nobgit.com/orgs/nobgit/nobmail.git
ssh://[email protected]:2222/orgs/nobgit/nobmail.git
Commit
JSON API Consume json in request body.
Draft docs https://feldhostmailhosting.docs.apiary.io Signed-off-by: Kristián Feldsam <[email protected]>
be2877c8
data/web/json_api.php | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
Diff
diff --git a/data/web/json_api.php b/data/web/json_api.php
index 53ecf520..8e6407b7 100644
--- a/data/web/json_api.php
+++ b/data/web/json_api.php
@@ -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'