diff --git a/lib/DeckClass.php b/lib/DeckClass.php index 3600d27..17366cc 100644 --- a/lib/DeckClass.php +++ b/lib/DeckClass.php @@ -2,12 +2,14 @@ namespace Mail2Deck; -class DeckClass { +class DeckClass +{ private $responseCode; - private function apiCall($request, $endpoint, $data = null, $attachment = false){ + private function apiCall($request, $endpoint, $data = null, $attachment = false) + { $curl = curl_init(); - if($data && !$attachment) { + if ($data && !$attachment) { $endpoint .= '?' . http_build_query($data); } curl_setopt_array($curl, array( @@ -25,38 +27,44 @@ class DeckClass { ), )); - if($request === 'POST') curl_setopt($curl, CURLOPT_POSTFIELDS, (array) $data); + if ($request === 'POST') { + curl_setopt($curl, CURLOPT_POSTFIELDS, (array) $data); + } $response = curl_exec($curl); $err = curl_error($curl); $this->responseCode = curl_getinfo($curl, CURLINFO_HTTP_CODE); curl_close($curl); - if($err) echo "cURL Error #:" . $err; + if ($err) { + echo "cURL Error #:" . $err; + } return json_decode($response); } - public function getParameters($params, $boardFromMail = null) {// get the board and the stack - if(!$boardFromMail) // if board is not set within the email address, look for board into email subject - if(preg_match('/b-"([^"]+)"/', $params, $m) || preg_match("/b-'([^']+)'/", $params, $m)) { - $boardFromMail = $m[1]; - $params = str_replace($m[0], '', $params); - } - if(preg_match('/s-"([^"]+)"/', $params, $m) || preg_match("/s-'([^']+)'/", $params, $m)) { + public function getParameters($params, $boardFromMail = null) + {// get the board and the stack + if (!$boardFromMail) { // if board is not set within the email address, look for board into email subject + if (preg_match('/b-"([^"]+)"/', $params, $m) || preg_match("/b-'([^']+)'/", $params, $m)) { + $boardFromMail = $m[1]; + $params = str_replace($m[0], '', $params); + } + } + if (preg_match('/s-"([^"]+)"/', $params, $m) || preg_match("/s-'([^']+)'/", $params, $m)) { $stackFromMail = $m[1]; $params = str_replace($m[0], '', $params); } - if(preg_match('/u-"([^"]+)"/', $params, $m) || preg_match("/u-'([^']+)'/", $params, $m)) { + if (preg_match('/u-"([^"]+)"/', $params, $m) || preg_match("/u-'([^']+)'/", $params, $m)) { $userFromMail = $m[1]; $params = str_replace($m[0], '', $params); } $boards = $this->apiCall("GET", NC_SERVER . "/index.php/apps/deck/api/v1.0/boards"); $boardId = $boardName = null; - foreach($boards as $board) { - if(strtolower($board->title) == strtolower($boardFromMail)) { - if(!$this->checkBotPermissions($board)) { + foreach ($boards as $board) { + if (strtolower($board->title) == strtolower($boardFromMail)) { + if (!$this->checkBotPermissions($board)) { return false; } $boardId = $board->id; @@ -65,14 +73,17 @@ class DeckClass { } } - if($boardId) { + if ($boardId) { $stacks = $this->apiCall("GET", NC_SERVER . "/index.php/apps/deck/api/v1.0/boards/$boardId/stacks"); - foreach($stacks as $key => $stack) - if(strtolower($stack->title) == strtolower($stackFromMail)) { + foreach ($stacks as $key => $stack) { + if (strtolower($stack->title) == strtolower($stackFromMail)) { $stackId = $stack->id; break; } - if($key == array_key_last($stacks) && !isset($stackId)) $stackId = $stacks[0]->id; + } + if ($key == array_key_last($stacks) && !isset($stackId)) { + $stackId = $stacks[0]->id; + } } else { return false; } @@ -82,25 +93,32 @@ class DeckClass { $boardStack->stack = $stackId; $boardStack->newTitle = $params; $boardStack->boardTitle = $boardName; - $boardStack->userId = $userFromMail; + $boardStack->userId = strtolower($userFromMail); return $boardStack; } - public function addCard($data, $user, $board = null) { + public function addCard($data, $user, $board = null) + { $params = $this->getParameters($data->title, $board); - if($params) { + if ($params) { $data->title = $params->newTitle; $card = $this->apiCall("POST", NC_SERVER . "/index.php/apps/deck/api/v1.0/boards/{$params->board}/stacks/{$params->stack}/cards", $data); $card->board = $params->board; $card->stack = $params->stack; - if ($params->userId) $user->userId = $params->userId; + if ($params->userId) { + $user->userId = $params->userId; + } - if($this->responseCode == 200) { - if(ASSIGN_SENDER || $params->userId) $this->assignUser($card, $user); - if($data->attachments) $this->addAttachments($card, $data->attachments); + if ($this->responseCode == 200) { + if (ASSIGN_SENDER || $params->userId) { + $this->assignUser($card, $user); + } + if ($data->attachments) { + $this->addAttachments($card, $data->attachments); + } $card->boardTitle = $params->boardTitle; } else { return false; @@ -110,7 +128,8 @@ class DeckClass { return false; } - private function addAttachments($card, $attachments) { + private function addAttachments($card, $attachments) + { $fullPath = getcwd() . "/attachments/"; //get full path to attachments directory for ($i = 0; $i < count($attachments); $i++) { $file = $fullPath . $attachments[$i]; @@ -125,20 +144,25 @@ class DeckClass { public function assignUser($card, $mailUser) { $board = $this->apiCall("GET", NC_SERVER . "/index.php/apps/deck/api/v1.0/boards/{$card->board}"); - $boardUsers = array_map(function ($user) { return $user->uid; }, $board->users); + $boardUsers = array_map(function ($user) { + return $user->uid; + }, $board->users); - foreach($boardUsers as $user) { - if($user === $mailUser->userId) { + foreach ($boardUsers as $user) { + if ($user === $mailUser->userId) { $this->apiCall("PUT", NC_SERVER . "/index.php/apps/deck/api/v1.0/boards/{$card->board}/stacks/{$card->stack}/cards/{$card->id}/assignUser", $mailUser); break; } } } - private function checkBotPermissions($board) { - foreach($board->acl as $acl) - if($acl->participant->uid == NC_USER && $acl->permissionEdit) + private function checkBotPermissions($board) + { + foreach ($board->acl as $acl) { + if ($acl->participant->uid == NC_USER && $acl->permissionEdit) { return true; + } + } return false; }