From 2d7cc09d0205d2b864f08a5f6b3770f8139c9dac Mon Sep 17 00:00:00 2001 From: Paolo Date: Mon, 25 Feb 2019 15:23:31 +0100 Subject: [PATCH] - Added new model CL/Messages_model.php - Moved logic from controllers system/Messages and ViewMessage to CL/Messages_model - Better code - MessageLib and PersonLogLib methods do not use anymore show_error and return success/error object - helpers/hlp_message_helper: hasData function changed --- application/controllers/ViewMessage.php | 80 ++----- .../controllers/system/FASMessages.php | 58 +++++- application/controllers/system/Messages.php | 177 +++------------- .../system/infocenter/InfoCenter.php | 10 +- application/helpers/hlp_message_helper.php | 9 +- application/libraries/MessageLib.php | 32 ++- application/libraries/PersonLogLib.php | 21 +- application/models/CL/Messages_model.php | 195 ++++++++++++++++++ 8 files changed, 320 insertions(+), 262 deletions(-) create mode 100644 application/models/CL/Messages_model.php diff --git a/application/controllers/ViewMessage.php b/application/controllers/ViewMessage.php index 35f5a5b4b..3c22c8977 100644 --- a/application/controllers/ViewMessage.php +++ b/application/controllers/ViewMessage.php @@ -33,6 +33,7 @@ class ViewMessage extends FHC_Controller // Load model MessageToken_model, not calling the authentication system $this->load->model('system/MessageToken_model', 'MessageTokenModel'); + $this->load->model('CL/Messages_model', 'CLMessagesModel'); } /** @@ -45,10 +46,10 @@ class ViewMessage extends FHC_Controller if ($msg->error) { - show_error($msg->retval); + show_error(getData($msg)); } - if (is_array($msg->retval) && count($msg->retval) > 0) + if (is_array(getData($msg)) && count(getData($msg)) > 0) { $setReadMessageStatusByToken = $this->MessageTokenModel->setReadMessageStatusByToken($token); @@ -57,8 +58,8 @@ class ViewMessage extends FHC_Controller show_error($msg->$setReadMessageStatusByToken); } - $sender_id = $msg->retval[0]->sender_id; - $receiver_id = $msg->retval[0]->receiver_id; + $sender_id = getData($msg)[0]->sender_id; + $receiver_id = getData($msg)[0]->receiver_id; $sender = $this->MessageTokenModel->getSenderData($sender_id); // To decide how to change the redirection @@ -75,8 +76,8 @@ class ViewMessage extends FHC_Controller $data = array ( 'sender_id' => $sender_id, - 'sender' => $sender->retval[0], - 'message' => $msg->retval[0], + 'sender' => getData($sender)[0], + 'message' => getData($msg)[0], 'isEmployee' => $isEmployee, 'href' => $href ); @@ -101,24 +102,22 @@ class ViewMessage extends FHC_Controller // Get message data if possible $msg = $this->MessageTokenModel->getMessageByToken($token); - if (!hasData($msg)) { show_error('No message found'); } - $msg = $msg->retval[0]; + $msg = getData($msg)[0]; // Get variables $receiverData = $this->MessageTokenModel->getPersonData($msg->sender_id); - if (!hasData($receiverData)) { show_error('No sender found'); } $data = array ( - 'receivers' => $receiverData->retval, + 'receivers' => getData($receiverData), 'message' => $msg, 'token' => $token ); @@ -127,13 +126,10 @@ class ViewMessage extends FHC_Controller } /** - * send reply + * Send a reply */ public function sendReply() { - $this->load->model('system/Message_model', 'MessageModel'); - $this->load->library('MessageLib'); - $subject = $this->input->post('subject'); $body = $this->input->post('body'); $persons = $this->input->post('persons'); @@ -145,60 +141,10 @@ class ViewMessage extends FHC_Controller show_error('Error while sending reply'); } - $relationmsg = $this->MessageTokenModel->getMessageByToken($token); - - // check if correct message - if (!hasData($relationmsg) || $relationmessage_id !== $relationmsg->retval[0]->message_id) + $sendReply = $this->CLMessagesModel->sendReply($subject, $body, $persons, $relationmessage_id, $token); + if (isError($sendReply)) { - show_error('Error while sending reply'); - } - - // get sender (receiver of previous msg) - $sender_id = $relationmsg->retval[0]->receiver_id; - - // get message data of persons - $data = $this->MessageTokenModel->getPersonData($persons); - - // send message(s) - if (hasData($data)) - { - // Loads the person log library - $this->load->library('PersonLogLib'); - - for ($i = 0; $i < count($data->retval); $i++) - { - $dataArray = (array)$data->retval[$i]; - - $msg = $this->messagelib->sendMessage($sender_id, $dataArray['person_id'], $subject, $body, PRIORITY_NORMAL, $relationmessage_id, null); - - if ($msg->error) show_error($msg->retval); - - // Write log entry for sender - $logtype_kurzbz = 'Action'; - $logdata = array( - 'name' => 'Message sent', - 'message' => 'Message sent from person '.$sender_id.' to '.$dataArray['person_id'].', messageid '.$msg->retval, - 'success' => 'true' - ); - $taetigkeit_kurzbz = 'kommunikation'; - $app = 'core'; - $oe_kurzbz = null; - $insertvon = 'online'; - - // Logs person data - $personLog = $this->personloglib->log( - $sender_id, - $logtype_kurzbz, - $logdata, - $taetigkeit_kurzbz, - $app, - $oe_kurzbz, - $insertvon - ); - - // Unpark bewerber after he sends message - $personLog = $this->personloglib->unPark($sender_id); - } + show_error(getData($sendReply)); } $this->load->view('system/messages/messageReplySent'); diff --git a/application/controllers/system/FASMessages.php b/application/controllers/system/FASMessages.php index 6c01f73a8..6928a919d 100644 --- a/application/controllers/system/FASMessages.php +++ b/application/controllers/system/FASMessages.php @@ -48,16 +48,16 @@ class FASMessages extends Auth_Controller $msgVarsData = $this->_getMsgVarsData($prestudent_id); // Retrieves message vars for a person from view view vw_msg_vars_person - $variablesArray = $this->messagelib->getMessageVarsPerson(); + $variablesArray = $this->_getMessageVarsPerson(); // Organisation units used to get the templates - $oe_kurzbz = $this->messagelib->getOeKurzbz($sender_id); + $oe_kurzbz = $this->_getOeKurzbz($sender_id); // Admin or commoner? - $isAdmin = $this->messagelib->getIsAdmin($sender_id); + $isAdmin = $this->_getIsAdmin($sender_id); $data = array( - 'recipients' => $msgVarsData->retval, + 'recipients' => getData($msgVarsData), 'variables' => $variablesArray, 'oe_kurzbz' => $oe_kurzbz, // used to get the templates 'isAdmin' => $isAdmin @@ -93,16 +93,16 @@ class FASMessages extends Auth_Controller $msgVarsData = $this->_getMsgVarsData($prestudent_id); // Retrieves message vars for a person from view view vw_msg_vars_person - $variablesArray = $this->messagelib->getMessageVarsPerson(); + $variablesArray = $this->_getMessageVarsPerson(); // Organisation units used to get the templates - $oe_kurzbz = $this->messagelib->getOeKurzbz($sender_id); + $oe_kurzbz = $this->_getOeKurzbz($sender_id); // Admin or commoner? - $isAdmin = $this->messagelib->getIsAdmin($sender_id); + $isAdmin = $this->_getIsAdmin($sender_id); $data = array( - 'recipients' => $msgVarsData->retval, + 'recipients' => getData($msgVarsData), 'message' => $msg, 'variables' => $variablesArray, 'oe_kurzbz' => $oe_kurzbz, // used to get the templates @@ -123,7 +123,7 @@ class FASMessages extends Auth_Controller $msg = $this->messagelib->getMessage($msg_id, $receiver_id); if (isError($msg)) { - show_error($msg->retval); + show_error(getData($msg)); } elseif (!hasData($msg)) { @@ -131,7 +131,7 @@ class FASMessages extends Auth_Controller } else { - $msg = $msg->retval[0]; + $msg = getData($msg)[0]; } return $msg; @@ -147,9 +147,45 @@ class FASMessages extends Auth_Controller if (isError($msgVarsData)) { - show_error($msgVarsData->retval); + show_error(getData($msgVarsData)); } return $msgVarsData; } + + /** + * Wrapper method to call messagelib->getMessageVarsPerson + */ + private function _getMessageVarsPerson() + { + $variables = $this->messagelib->getMessageVarsPerson(); + + if (isError($variables)) show_error(getData($variables)); + + return getData($variables); + } + + /** + * Wrapper method to call messagelib->getOeKurzbz + */ + private function _getOeKurzbz($sender_id) + { + $oe_kurzbz = $this->messagelib->getOeKurzbz($sender_id); + + if (isError($oe_kurzbz)) show_error(getData($oe_kurzbz)); + + return getData($oe_kurzbz); + } + + /** + * Wrapper method to call messagelib->getIsAdmin + */ + private function _getIsAdmin($sender_id) + { + $isAdmin = $this->messagelib->getIsAdmin($sender_id); + + if (isError($isAdmin)) show_error(getData($isAdmin)); + + return getData($isAdmin); + } } diff --git a/application/controllers/system/Messages.php b/application/controllers/system/Messages.php index ed6d12044..ec630da1e 100644 --- a/application/controllers/system/Messages.php +++ b/application/controllers/system/Messages.php @@ -27,6 +27,7 @@ class Messages extends Auth_Controller $this->load->library('WidgetLib'); $this->load->model('system/Message_model', 'MessageModel'); + $this->load->model('CL/Messages_model', 'CLMessagesModel'); $this->loadPhrases( array( @@ -47,32 +48,36 @@ class Messages extends Auth_Controller $person_id = $this->input->post('person_id'); $sender_id = null; - $authUser = $this->_getAuthUser(); + $authUser = $this->CLMessagesModel->getAuthUser(); if (isError($authUser)) { - show_error($authUser->retval); + show_error(getData($authUser)); } else { $sender_id = getData($authUser)[0]->person_id; } - $msgVarsData = $this->_getMsgVarsData($person_id); + $msgVarsData = $this->MessageModel->getMsgVarsDataByPersonId($person_id); + if (isError($msgVarsData)) show_error(getData($msgVarsData)); // Retrieves message vars for a person from view view vw_msg_vars_person - $variablesArray = $this->messagelib->getMessageVarsPerson(); + $variables = $this->messagelib->getMessageVarsPerson(); + if (isError($variables)) show_error(getData($variables)); // Organisation units used to get the templates $oe_kurzbz = $this->messagelib->getOeKurzbz($sender_id); + if (isError($oe_kurzbz)) show_error(getData($oe_kurzbz)); // Admin or commoner? - $isAdmin = $this->messagelib->getIsAdmin($sender_id); + $isAdmin = $this->messagelib->getIsAdmin($sender_id); + if (isError($isAdmin)) show_error(getData($isAdmin)); $data = array ( - 'recipients' => $msgVarsData->retval, - 'variables' => $variablesArray, - 'oe_kurzbz' => $oe_kurzbz, // used to get the templates - 'isAdmin' => $isAdmin + 'recipients' => getData($msgVarsData), + 'variables' => getData($variables), + 'oe_kurzbz' => getData($oe_kurzbz), // used to get the templates + 'isAdmin' => getData($isAdmin) ); $this->load->view('system/messages/messageWrite', $data); @@ -88,7 +93,7 @@ class Messages extends Auth_Controller $msgVarsData = $this->MessageModel->getMsgVarsDataByPersonId($persons); - $send = $this->_send($msgVarsData, $relationmessage_id); + $send = $this->CLMessagesModel->send($msgVarsData, $relationmessage_id); $this->load->view('system/messages/messageSent', array('success' => isSuccess($send))); } @@ -111,103 +116,17 @@ class Messages extends Auth_Controller // Adds the organisation unit to each prestudent if (isEmptyString($oe_kurzbz) && hasData($msgVarsData) && hasData($prestudentsData)) { - for ($i = 0; $i < count($msgVarsData->retval); $i++) - { - for ($p = 0; $p < count($prestudentsData->retval); $p++) - { - if ($prestudentsData->retval[$p]->prestudent_id == $msgVarsData->retval[$i]->prestudent_id) - { - $msgVarsData->retval[$i]->oe_kurzbz = $prestudentsData->retval[$p]->oe_kurzbz; - break; - } - } - } + $this->CLMessagesModel->addOeToPrestudents($msgVarsData, $prestudentsData); } - $send = $this->_send($msgVarsData, null, $oe_kurzbz, $vorlage_kurzbz, $msgVars); + $send = $this->CLMessagesModel->send($msgVarsData, null, $oe_kurzbz, $vorlage_kurzbz, $msgVars); if (isError($send)) { - $this->outputJsonError($send->retval); + $this->outputJsonError(getData($send)); } else { - $this->outputJsonSuccess($send->retval); - } - } - - // ----------------------------------------------------------------------------------------------------------------- - // Private methods - - /** - * Executes message sending - * @param $sender_id - * @return array wether execution was successfull - error or success - */ - private function _send($msgVarsData, $relationmessage_id = null, $oe_kurzbz = null, $vorlage_kurzbz = null, $msgVars = null) - { - $subject = $this->input->post('subject'); - $body = $this->input->post('body'); - - $authUser = $this->_getAuthUser(); - - if (isError($authUser)) return $authUser; - - $sender_id = getData($authUser)[0]->person_id; - - // Send message(s) - if (hasData($msgVarsData)) - { - // Loads the person log library - $this->load->library('PersonLogLib'); - - for ($i = 0; $i < count($msgVarsData->retval); $i++) - { - $parsedText = ""; - $msgVarsDataArray = $this->_replaceKeys((array)$msgVarsData->retval[$i]); // replaces array keys - - // Send without vorlage - if (isEmptyString($vorlage_kurzbz)) - { - $parsedText = $this->messagelib->parseMessageText($body, $msgVarsDataArray); - $msg = $this->messagelib->sendMessage($sender_id, $msgVarsDataArray['person_id'], $subject, $parsedText, PRIORITY_NORMAL, $relationmessage_id, $oe_kurzbz); - } - // Send with vorlage - else - { - if (is_array($msgVars)) - { - // Additional message variables - foreach ($msgVars as $key => $msgvar) - { - $msgVarsDataArray[$key] = $msgvar; - } - } - $msg = $this->messagelib->sendMessageVorlage($sender_id, $msgVarsDataArray['person_id'], $vorlage_kurzbz, $oe_kurzbz, $msgVarsDataArray); - } - - if (isError($msg)) return $msg; - - // Write log entry - $personLog = $this->personloglib->log( - $msgVarsDataArray['person_id'], - 'Action', - array( - 'name' => 'Message sent', - 'message' => 'Message sent from person '.$sender_id.' to '.$msgVarsDataArray['person_id'].', messageid '.$msg->retval, - 'success' => 'true' - ), - 'kommunikation', - 'core', - null, - getAuthUID() - ); - } - - return success('Messages sent successfully'); - } - else - { - return $msgVarsData; + $this->outputJsonSuccess(getData($send)); } } @@ -233,11 +152,11 @@ class Messages extends Auth_Controller if (isError($result) || !hasData($result)) { - $this->outputJsonError($result->retval); + $this->outputJsonError(getData($result)); } else { - $this->outputJsonSuccess($result->retval); + $this->outputJsonSuccess(getData($result)); } } @@ -262,11 +181,11 @@ class Messages extends Auth_Controller if (isError($data) || !hasData($data)) { - $this->outputJsonError($data->retval); + $this->outputJsonError(getData($data)); } else { - $parsedText = $this->messagelib->parseMessageText($text, $this->_replaceKeys((array)$data->retval[0])); + $parsedText = $this->messagelib->parseMessageText($text, $this->CLMessagesModel->replaceKeys((array)getData($data)[0])); $this->outputJsonSuccess($parsedText); } @@ -286,54 +205,6 @@ class Messages extends Auth_Controller $this->output ->set_content_type('application/json') - ->set_output(json_encode(array($msg->retval[0]))); - } - - // ----------------------------------------------------------------------------------------------------------------- - // Private methods - - /** - * Retrieves message vars from view vw_msg_vars - */ - private function _getMsgVarsData($person_id) - { - $msgVarsData = $this->MessageModel->getMsgVarsDataByPersonId($person_id); - if (isError($msgVarsData)) - { - show_error($msgVarsData->retval); - } - - return $msgVarsData; - } - - /** - * - */ - private function _getAuthUser() - { - $sender_id = null; - - $this->load->model('person/Person_model', 'PersonModel'); - $authUser = $this->PersonModel->getByUid(getAuthUID()); - - if (!hasData($authUser)) $authUser = error('The current logged user person_id is not defined'); - - return $authUser; - } - - /** - * - */ - private function _replaceKeys($data) - { - $tmpData = array(); - - // Replaces data array keys to a lowercase without spaces string - foreach ($data as $key => $val) - { - $tmpData[str_replace(' ', '_', strtolower($key))] = $val; - } - - return $tmpData; + ->set_output(json_encode(array(getData($msg)[0]))); } } diff --git a/application/controllers/system/infocenter/InfoCenter.php b/application/controllers/system/infocenter/InfoCenter.php index 431d0ecd8..2a8b238fe 100644 --- a/application/controllers/system/infocenter/InfoCenter.php +++ b/application/controllers/system/infocenter/InfoCenter.php @@ -722,8 +722,14 @@ class InfoCenter extends Auth_Controller $person_id = $this->input->post('person_id'); $result = $this->personloglib->unPark($person_id); - - $this->output->set_content_type('application/json')->set_output(json_encode($result)); + if (isError($result)) + { + $this->outputJsonError($result); + } + else + { + $this->output->set_content_type('application/json')->set_output(json_encode(getData($result))); + } } /** diff --git a/application/helpers/hlp_message_helper.php b/application/helpers/hlp_message_helper.php index c8bbcaf87..f9ff758f3 100644 --- a/application/helpers/hlp_message_helper.php +++ b/application/helpers/hlp_message_helper.php @@ -69,12 +69,15 @@ function isSuccess($result) } /** - * Checks if the result represents a success and also if it contains data from DB + * Checks if the result represents a success and also if it contains valid data */ function hasData($result) { - if (isSuccess($result) && isset($result->retval) && - is_array($result->retval) && count($result->retval) > 0) + if (isSuccess($result) && isset($result->retval) + && (!isEmptyArray($result->retval) + || !isEmptyString($result->retval) + || is_numeric($result->retval) + || is_object($result->retval))) { return true; } diff --git a/application/libraries/MessageLib.php b/application/libraries/MessageLib.php index c539a0bc7..cb691ec93 100644 --- a/application/libraries/MessageLib.php +++ b/application/libraries/MessageLib.php @@ -760,23 +760,23 @@ class MessageLib public function getMessageVarsPerson() { $variablesArray = array(); - $variables = $this->_ci->MessageModel->getMessageVarsPerson(); + $variables = $this->_ci->MessageModel->getMessageVarsPerson(); if (isError($variables)) { - show_error($variables->retval); + return $variables; } elseif (hasData($variables)) { + $tmpVariablesArray = getData($variables); // Skip person_id - for ($i = 1; $i < count($variables->retval); $i++) + for ($i = 1; $i < count($tmpVariablesArray); $i++) { - $variablesArray['{'.str_replace(' ', '_', strtolower($variables->retval[$i])).'}'] = $variables->retval[$i]; + $variablesArray['{'.str_replace(' ', '_', strtolower($tmpVariablesArray[$i])).'}'] = $tmpVariablesArray[$i]; } - array_shift($variables->retval); // Remove person_id } - return $variablesArray; + return success($variablesArray); } /** @@ -787,20 +787,21 @@ class MessageLib $oe_kurzbz = array(); $this->_ci->load->model('person/Benutzerfunktion_model', 'BenutzerfunktionModel'); - $benutzerResult = $this->_ci->BenutzerfunktionModel->getByPersonId($sender_id); - if (isError($benutzerResult)) + + $benutzer = $this->_ci->BenutzerfunktionModel->getByPersonId($sender_id); + if (isError($benutzer)) { - show_error($benutzerResult->retval); + return $benutzer; } - elseif (hasData($benutzerResult)) + elseif (hasData($benutzer)) { - foreach ($benutzerResult->retval as $val) + foreach (getData($benutzer) as $val) { $oe_kurzbz[] = $val->oe_kurzbz; } } - return $oe_kurzbz; + return success($oe_kurzbz); } /** @@ -809,13 +810,8 @@ class MessageLib public function getIsAdmin($sender_id) { $this->_ci->load->model('system/Benutzerrolle_model', 'BenutzerrolleModel'); - $isAdmin = $this->_ci->BenutzerrolleModel->isAdminByPersonId($sender_id); - if (isError($isAdmin)) - { - show_error($isAdmin->retval); - } - return $isAdmin->retval; + return $this->_ci->BenutzerrolleModel->isAdminByPersonId($sender_id); } //------------------------------------------------------------------------------------------------------------------ diff --git a/application/libraries/PersonLogLib.php b/application/libraries/PersonLogLib.php index e933f532e..b56937dfe 100644 --- a/application/libraries/PersonLogLib.php +++ b/application/libraries/PersonLogLib.php @@ -42,11 +42,7 @@ class PersonLogLib 'insertvon' => $user ); - $result = $this->ci->PersonLogModel->insert($data); - if (isSuccess($result)) - return true; - else - show_error($result->retval); + return $this->ci->PersonLogModel->insert($data); } /** @@ -120,10 +116,9 @@ class PersonLogLib */ public function unPark($person_id) { - $result = $this->ci->PersonLogModel->getLogsInFuture($person_id); - $deleted = array(); + $result = $this->ci->PersonLogModel->getLogsInFuture($person_id); if (hasData($result)) { foreach ($result->retval as $log) @@ -133,12 +128,22 @@ class PersonLogLib { $delresult = $this->ci->PersonLogModel->deleteLog($log->log_id); if (isSuccess($delresult)) + { $deleted[] = $log->log_id; + } + else + { + return $delresult; + } } } } + else + { + return $result; + } - return $deleted; + return success($deleted); } /** diff --git a/application/models/CL/Messages_model.php b/application/models/CL/Messages_model.php new file mode 100644 index 000000000..5a0a77a31 --- /dev/null +++ b/application/models/CL/Messages_model.php @@ -0,0 +1,195 @@ +load->library('MessageLib'); + + // Loads the person log library + $this->load->library('PersonLogLib'); + + $this->load->model('system/MessageToken_model', 'MessageTokenModel'); + } + + /** + * Executes message sending + * @param $sender_id + * @return array wether execution was successfull - error or success + */ + public function send($msgVarsData, $relationmessage_id = null, $oe_kurzbz = null, $vorlage_kurzbz = null, $msgVars = null) + { + $subject = $this->input->post('subject'); + $body = $this->input->post('body'); + + $authUser = $this->getAuthUser(); + + if (isError($authUser)) return $authUser; + + $sender_id = getData($authUser)[0]->person_id; + + // Send message(s) + if (hasData($msgVarsData)) + { + for ($i = 0; $i < count(getData($msgVarsData)); $i++) + { + $parsedText = ""; + $msgVarsDataArray = $this->replaceKeys((array)getData($msgVarsData)[$i]); // replaces array keys + + // Send without vorlage + if (isEmptyString($vorlage_kurzbz)) + { + $parsedText = $this->messagelib->parseMessageText($body, $msgVarsDataArray); + $msg = $this->messagelib->sendMessage($sender_id, $msgVarsDataArray['person_id'], $subject, $parsedText, PRIORITY_NORMAL, $relationmessage_id, $oe_kurzbz); + } + // Send with vorlage + else + { + if (is_array($msgVars)) + { + // Additional message variables + foreach ($msgVars as $key => $msgvar) + { + $msgVarsDataArray[$key] = $msgvar; + } + } + $msg = $this->messagelib->sendMessageVorlage($sender_id, $msgVarsDataArray['person_id'], $vorlage_kurzbz, $oe_kurzbz, $msgVarsDataArray); + } + + if (isError($msg)) return $msg; + + // Write log entry + $personLog = $this->personloglib->log( + $msgVarsDataArray['person_id'], + 'Action', + array( + 'name' => 'Message sent', + 'message' => 'Message sent from person '.$sender_id.' to '.$msgVarsDataArray['person_id'].', messageid '.getData($msg), + 'success' => 'true' + ), + 'kommunikation', + 'core', + null, + getAuthUID() + ); + + if (isError($personLog)) return $personLog; + } + + return success('Messages sent successfully'); + } + else + { + return $msgVarsData; + } + } + + /** + * Send a reply + */ + public function sendReply($subject, $body, $persons, $relationmessage_id, $token) + { + $relationmsg = $this->MessageTokenModel->getMessageByToken($token); + if (!hasData($relationmsg) || $relationmessage_id !== getData($relationmsg)[0]->message_id) + { + show_error('Error while sending reply'); + } + + // Get sender (receiver of previous msg) + $sender_id = getData($relationmsg)[0]->receiver_id; + + // Get message data of persons + $data = $this->MessageTokenModel->getPersonData($persons); + if (hasData($data)) + { + for ($i = 0; $i < count(getData($data)); $i++) + { + $dataArray = (array)getData($data)[$i]; + + $msg = $this->messagelib->sendMessage($sender_id, $dataArray['person_id'], $subject, $body, PRIORITY_NORMAL, $relationmessage_id, null); + if (isError($msg)) return $msg; + + // Logs person data + $personLog = $this->personloglib->log( + $sender_id, + 'Action', + array( + 'name' => 'Message sent', + 'message' => 'Message sent from person '.$sender_id.' to '.$dataArray['person_id'].', messageid '.getData($msg), + 'success' => 'true' + ), + 'kommunikation', + 'core', + null, + 'online' + ); + + // Unpark bewerber after he sends message + $personLog = $this->personloglib->unPark($sender_id); + + if (isError($personLog)) return $personLog; + } + } + + return success('Reply sent'); + } + + /** + * + */ + public function getAuthUser() + { + $sender_id = null; + + $this->load->model('person/Person_model', 'PersonModel'); + $authUser = $this->PersonModel->getByUid(getAuthUID()); + + if (!hasData($authUser)) $authUser = error('The current logged user person_id is not defined'); + + return $authUser; + } + + /** + * + */ + public function replaceKeys($data) + { + $tmpData = array(); + + // Replaces data array keys to a lowercase without spaces string + foreach ($data as $key => $val) + { + $tmpData[str_replace(' ', '_', strtolower($key))] = $val; + } + + return $tmpData; + } + + /** + * + */ + public function addOeToPrestudents(&$msgVarsData, $prestudentsData) + { + for ($i = 0; $i < count(getData($msgVarsData)); $i++) + { + for ($p = 0; $p < count(getData($prestudentsData)); $p++) + { + if (getData($prestudentsData)[$p]->prestudent_id == getData($msgVarsData)[$i]->prestudent_id) + { + $msgVarsData->retval[$i]->oe_kurzbz = getData($prestudentsData)[$p]->oe_kurzbz; + break; + } + } + } + } +}