Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 5 |
CRAP | |
0.00% |
0 / 304 |
| ThirdPartyApiService | |
0.00% |
0 / 1 |
|
0.00% |
0 / 5 |
3306.00 | |
0.00% |
0 / 304 |
| __construct | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 2 |
|||
| __clone | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 2 |
|||
| getInstance | |
0.00% |
0 / 1 |
6.00 | |
0.00% |
0 / 5 |
|||
| sendMessage | |
0.00% |
0 / 1 |
2756.00 | |
0.00% |
0 / 293 |
|||
| pushNotificationTov4App | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 2 |
|||
| <?php | |
| namespace com\linways\core\ams\professional\service; | |
| use HTMLPurifier; | |
| use HTMLPurifier_Config; | |
| use com\linways\core\ams\professional\dto\Messages; | |
| use com\linways\core\ams\professional\dto\RecipeintType; | |
| use Symfony\Component\Config\Definition\Exception\Exception; | |
| use com\linways\core\ams\professional\exception\ProfessionalException; | |
| use com\linways\core\ams\professional\service\HODService; | |
| class ThirdPartyApiService extends BaseService | |
| { | |
| // /Condition 1 - Presence of a static member variable | |
| private static $_instance = null; | |
| // /Condition 2 - Locked down the constructor | |
| private function __construct() | |
| { | |
| } | |
| // Prevent any oustide instantiation of this class | |
| // /Condition 3 - Prevent any object or instance of that class to be cloned | |
| private function __clone() | |
| { | |
| } | |
| // Prevent any copy of this object | |
| // /Condition 4 - Have a single globally accessible static method | |
| public static function getInstance() | |
| { | |
| if (!is_object(self::$_instance)) // or if( is_null(self::$_instance) ) or if( self::$_instance == null ) | |
| self::$_instance = new self(); | |
| return self::$_instance; | |
| } | |
| /** | |
| * @param Messages $messages | |
| * @throws ProfessionalException | |
| */ | |
| public function sendMessage($messages) | |
| { | |
| $messages->content = $this->realEscapeString($messages->content); | |
| $messages->subject = $this->realEscapeString($messages->subject); | |
| $messages->batchId = $this->realEscapeString($messages->batchId); | |
| $messages->deptId = $this->realEscapeString($messages->deptId); | |
| $messages->recType = $this->realEscapeString($messages->recType); | |
| $messages->senderType = $this->realEscapeString($messages->senderType); | |
| $msgId = $this->composeMessage($messages); | |
| if($messages->deptId == 'null' || empty($messages->deptId)) { | |
| $messages->deptId =0; | |
| } | |
| if(empty($messages->subjectId)) { | |
| $messages->subjectId = 0; | |
| } | |
| switch ($messages->recType) { | |
| case RecipeintType::ALL: | |
| $sqlStudents = "INSERT INTO messageRecipeints(msgId, userId, userType, batchId, deptId, subjectId, isSubbatch ) | |
| SELECT $msgId, studentID, 'STUDENT', $messages->batchId, $messages->deptId, $messages->subjectId, | |
| $messages->isSubbatch FROM studentaccount WHERE student_lock=0 "; | |
| if($messages->pushNotification) | |
| { | |
| } | |
| $sqlStaff = "INSERT INTO messageRecipeints(msgId, userId, userType, batchId, deptId, subjectId, isSubbatch ) | |
| SELECT $msgId, staffID, 'FACULTY', $messages->batchId, $messages->deptId, $messages->subjectId, $messages->isSubbatch | |
| FROM staffaccounts WHERE isResigned=0 AND staffID !=$messages->senderId "; | |
| if ($messages->deptId) { | |
| $sqlStudents .= "AND deptID=$messages->deptId"; | |
| $sqlStaff .= "AND deptID=$messages->deptId"; | |
| } | |
| $sqlStaff .= " GROUP BY staffID"; | |
| try { | |
| $this->executeQueryForObject($sqlStudents); | |
| $this->executeQueryForObject($sqlStaff); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| break; | |
| case RecipeintType::ALL_BATCH: | |
| $sqlStudents = "INSERT INTO messageRecipeints(msgId, userId, userType, batchId, deptId, subjectId, isSubbatch ) | |
| SELECT $msgId, studentID, 'STUDENT', $messages->batchId, $messages->deptId, $messages->subjectId, | |
| $messages->isSubbatch FROM studentaccount WHERE student_lock=0 AND batchID=$messages->batchId AND deptID=$messages->deptId"; | |
| $sqlStaff = "INSERT INTO messageRecipeints(msgId, userId, userType, batchId, deptId, subjectId, isSubbatch ) | |
| SELECT $msgId, st.staffID, 'FACULTY', $messages->batchId, st.deptID, $messages->subjectId, $messages->isSubbatch | |
| FROM staffaccounts st INNER JOIN sbs_relation sr ON st.staffID = sr.staffID INNER JOIN batches b ON b.batchID = sr.batchID | |
| AND b.semID = sr.semID WHERE st.isResigned=0 AND st.deptID=$messages->deptId | |
| AND sr.batchID = $messages->batchId AND st.staffID !=$messages->senderId GROUP BY st.staffID"; | |
| try { | |
| $this->executeQuery($sqlStudents); | |
| $this->executeQuery($sqlStaff); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| break; | |
| case RecipeintType::ALL_SUBBATCH: | |
| $sqlStudents = "INSERT INTO messageRecipeints(msgId, userId, userType, batchId, deptId, subjectId, isSubbatch ) | |
| SELECT $msgId, sa.studentID, 'STUDENT', sub.subbatchID, sa.deptID, $messages->subjectId, $messages->isSubbatch | |
| FROM studentaccount sa INNER JOIN subbatches sub ON sub.batchID =sa.batchID INNER JOIN subbatch_student ss ON sub.subbatchID=ss.subbatchID | |
| AND sa.studentID =ss.studentID WHERE sub.subbatchID=$messages->batchId"; | |
| $sqlStaff = "INSERT INTO messageRecipeints(msgId, userId, userType, batchId, deptId, subjectId, isSubbatch ) | |
| SELECT $msgId, st.staffID, 'FACULTY', $messages->batchId, st.deptID, $messages->subjectId, $messages->isSubbatch FROM staffaccounts st | |
| INNER JOIN sbs_relation sr ON st.staffID = sr.staffID INNER JOIN subbatch_sbs ss ON ss.sbsID=sr.sbsID | |
| WHERE st.isResigned=0 AND st.deptID=$messages->deptId AND ss.subbatchID=$messages->batchId AND st.staffID !=$messages->senderId group by st.staffID"; | |
| try { | |
| $this->executeQuery($sqlStudents); | |
| $this->executeQuery($sqlStaff); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| break; | |
| case RecipeintType::ALL_FACULTY: | |
| $sqlStaff = "INSERT INTO messageRecipeints(msgId, userId, userType, batchId, deptId, subjectId, isSubbatch ) | |
| SELECT $msgId, staffID, 'FACULTY', $messages->batchId, $messages->deptId, $messages->subjectId, $messages->isSubbatch | |
| FROM staffaccounts WHERE isResigned=0 AND staffID !=$messages->senderId group by staffID"; | |
| try { | |
| $this->executeQuery($sqlStaff); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| break; | |
| case RecipeintType::ALL_DEPT_FACULTY: | |
| $sqlStaff = "INSERT INTO messageRecipeints(msgId, userId, userType, batchId, deptId, subjectId, isSubbatch ) | |
| SELECT $msgId, staffID, 'FACULTY', $messages->batchId, deptID, $messages->subjectId, $messages->isSubbatch | |
| FROM staffaccounts WHERE isResigned=0 AND deptID=$messages->deptId AND staffID !=$messages->senderId group by staffID"; | |
| try { | |
| $this->executeQuery($sqlStaff); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| break; | |
| case RecipeintType::ALL_BATCH_FACULTY: | |
| $sqlStaff = "INSERT INTO messageRecipeints(msgId, userId, userType, batchId, deptId, subjectId, isSubbatch ) | |
| SELECT $msgId, st.staffID, 'FACULTY', $messages->batchId, st.deptID, $messages->subjectId, $messages->isSubbatch | |
| FROM staffaccounts st INNER JOIN sbs_relation sr ON st.staffID = sr.staffID INNER JOIN batches b ON b.batchID = sr.batchID | |
| AND b.semID = sr.semID WHERE st.isResigned=0 AND st.deptID=$messages->deptId | |
| AND sr.batchID = $messages->batchId AND st.staffID !=$messages->senderId group by st.staffID"; | |
| try { | |
| $this->executeQuery($sqlStaff); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| break; | |
| case RecipeintType::ALL_SUBBATCH_FACULTY: | |
| $sqlStaff = "INSERT INTO messageRecipeints(msgId, userId, userType, batchId, deptId, subjectId, isSubbatch ) | |
| SELECT $msgId, st.staffID, 'FACULTY', $messages->batchId, st.deptID, $messages->subjectId, $messages->isSubbatch | |
| FROM staffaccounts st INNER JOIN sbs_relation sr ON st.staffID = sr.staffID INNER JOIN subbatch_sbs ss ON ss.sbsID=sr.sbsID | |
| WHERE st.isResigned=0 AND st.deptID=$messages->deptId AND ss.subbatchID=$messages->batchId | |
| AND st.staffID !=$messages->senderId group by st.staffID"; | |
| try { | |
| $this->executeQuery($sqlStaff); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| break; | |
| case RecipeintType::ALL_STUDENTS: | |
| $sqlStudents = "INSERT INTO messageRecipeints(msgId, userId, userType, batchId, deptId, subjectId, isSubbatch ) | |
| SELECT $msgId, studentID, 'STUDENT', $messages->batchId, $messages->deptId, $messages->subjectId, $messages->isSubbatch | |
| FROM studentaccount WHERE student_lock=0"; | |
| try { | |
| $this->executeQuery($sqlStudents); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| break; | |
| case RecipeintType::ALL_BATCH_STUDENT: | |
| if(!$messages->deptId){ | |
| $sqlStudents = "INSERT INTO messageRecipeints(msgId, userId, userType, batchId, deptId, subjectId, isSubbatch ) | |
| SELECT $msgId, studentID, 'STUDENT', batchID, deptID, $messages->subjectId, $messages->isSubbatch | |
| FROM studentaccount WHERE student_lock=0 AND batchID=$messages->batchId "; | |
| } | |
| else{ | |
| $sqlStudents = "INSERT INTO messageRecipeints(msgId, userId, userType, batchId, deptId, subjectId, isSubbatch ) | |
| SELECT $msgId, studentID, 'STUDENT', batchID, deptID, $messages->subjectId, $messages->isSubbatch | |
| FROM studentaccount WHERE student_lock=0 AND batchID=$messages->batchId AND deptID=$messages->deptId"; | |
| } | |
| try { | |
| $this->executeQuery($sqlStudents); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| break; | |
| case RecipeintType::ALL_DEPT_STUDENT: | |
| $sqlStudents = "INSERT INTO messageRecipeints(msgId, userId, userType, batchId, deptId, subjectId, isSubbatch ) | |
| SELECT $msgId, studentID, 'STUDENT', $messages->batchId, deptID, $messages->subjectId, $messages->isSubbatch | |
| FROM studentaccount WHERE student_lock=0 AND deptID=$messages->deptId"; | |
| try { | |
| $this->executeQuery($sqlStudents); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| case RecipeintType::ALL_SUBBATCH_STUDENT: | |
| $sqlStudents = "INSERT INTO messageRecipeints(msgId, userId, userType, batchId, deptId, subjectId, isSubbatch ) | |
| SELECT $msgId, sa.studentID, 'STUDENT', sub.subbatchID, sa.deptID, $messages->subjectId, $messages->isSubbatch | |
| FROM studentaccount sa INNER JOIN subbatches sub ON sub.batchID =sa.batchID INNER JOIN subbatch_student ss | |
| ON sub.subbatchID=ss.subbatchID AND sa.studentID =ss.studentID WHERE sub.subbatchID=$messages->batchId"; | |
| try { | |
| $this->executeQuery($sqlStudents); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| break; | |
| case RecipeintType::INDIVIDUAL: | |
| if ($messages->recipeint != NULL && count($messages->recipeint) > 0) { | |
| $sql = 'INSERT INTO messageRecipeints(msgId, userId, userType, batchId, deptId, subjectId, isSubbatch ) VALUES '; | |
| foreach ($messages->recipeint as $user) { | |
| $cond[] = "($msgId, $user->userId, '$user->userType', $messages->batchId, $messages->deptId, $messages->subjectId, $messages->isSubbatch )"; | |
| } | |
| $sql .= implode(',', $cond); | |
| try { | |
| $this->executeQuery($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| } | |
| break; | |
| case RecipeintType::HOD: | |
| $sqlStaff = "INSERT INTO messageRecipeints(msgId, userId, userType, batchId, deptId, subjectId, isSubbatch ) | |
| SELECT $msgId, staffID, 'HOD', $messages->batchId, deptID, $messages->subjectId, $messages->isSubbatch | |
| FROM staffaccounts WHERE isResigned=0 AND deptID=$messages->deptId AND isHOD >0"; | |
| try { | |
| $this->executeQuery($sqlStaff); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| break; | |
| case RecipeintType::PRINCIPAL: | |
| $sqlStaff = "INSERT INTO messageRecipeints(msgId, userId, userType, batchId, deptId, subjectId, isSubbatch ) | |
| SELECT $msgId, staffID, 'PRINCIPAL', $messages->batchId, deptID, $messages->subjectId, $messages->isSubbatch | |
| FROM staffaccounts WHERE isResigned=0 AND isPrincipal >0"; | |
| try { | |
| $this->executeQuery($sqlStaff); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| break; | |
| case RecipeintType::CURRENT_STAFF: | |
| if ($messages->recipeint != NULL && count($messages->recipeint) > 0) { | |
| $sql = 'INSERT INTO messageRecipeints(msgId, userId, userType, batchId, deptId, subjectId, isSubbatch ) VALUES '; | |
| foreach ($messages->recipeint as $user) { | |
| $cond[] = "($msgId, $user->userId, '$user->userType', $user->batchId, $user->deptId, $user->subjectId, $user->isSubbatch )"; | |
| } | |
| $sql .= implode(',', $cond); | |
| try { | |
| $this->executeQuery($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| } | |
| break; | |
| case RecipeintType::ALL_HOD: | |
| $faculties = HODService::getInstance()->getAllHodDetails(); | |
| $sql = 'INSERT INTO messageRecipeints(msgId, userId, userType, deptId ) VALUES '; | |
| foreach ($faculties as $user) { | |
| $cond[] = "($msgId, $user->staffID, 'HOD', $user->deptID )"; | |
| } | |
| $sql .= implode(',', $cond); | |
| try { | |
| $this->executeQuery($sql); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| break; | |
| case RecipeintType::ALL_STUDENTS_OF_BATCHYEAR: | |
| if($messages->deptId){ | |
| $sqlStudents = "INSERT INTO messageRecipeints(msgId, userId, userType, batchId, deptId ) | |
| SELECT | |
| $msgId, studentID, 'STUDENT', b.batchID, s.deptID | |
| FROM | |
| studentaccount s | |
| INNER JOIN | |
| batches b ON b.batchID = s.batchID | |
| WHERE | |
| student_lock = 0 | |
| AND b.batchStartYear = $messages->batchStartYear | |
| And b.deptID = $messages->deptId | |
| ;"; | |
| } | |
| else{ | |
| $sqlStudents = "INSERT INTO messageRecipeints(msgId, userId, userType, batchId, deptId ) | |
| SELECT | |
| $msgId, studentID, 'STUDENT', b.batchID, s.deptID | |
| FROM | |
| studentaccount s | |
| INNER JOIN | |
| batches b ON b.batchID = s.batchID | |
| WHERE | |
| student_lock = 0 | |
| AND b.batchStartYear = $messages->batchStartYear | |
| ;"; | |
| } | |
| try { | |
| $this->executeQuery($sqlStudents); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| break; | |
| case RecipeintType::ALL_STUDENTS_OF_BATCHYEAR_WITH_COURSETYPE: | |
| if($messages->deptId){ | |
| $sqlStudents = "INSERT INTO messageRecipeints(msgId, userId, userType, batchId, deptId ) | |
| SELECT | |
| $msgId, studentID, 'STUDENT', b.batchID, s.deptID | |
| FROM | |
| studentaccount s | |
| INNER JOIN | |
| batches b ON b.batchID = s.batchID | |
| WHERE | |
| student_lock = 0 | |
| AND b.batchStartYear = $messages->batchStartYear | |
| And b.deptID = $messages->deptId | |
| AND b.courseTypeID = '$messages->courseId' | |
| ;"; | |
| } | |
| else{ | |
| $sqlStudents = "INSERT INTO messageRecipeints(msgId, userId, userType, batchId, deptId ) | |
| SELECT | |
| $msgId, studentID, 'STUDENT', b.batchID, s.deptID | |
| FROM | |
| studentaccount s | |
| INNER JOIN | |
| batches b ON b.batchID = s.batchID | |
| WHERE | |
| student_lock = 0 | |
| AND b.batchStartYear = $messages->batchStartYear | |
| AND b.courseTypeID = '$messages->courseId' | |
| ;"; | |
| } | |
| try { | |
| $this->executeQuery($sqlStudents); | |
| } catch (\Exception $e) { | |
| throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| } | |
| break; | |
| // case RecipeintType::USER_GROUP: | |
| // $sql = "INSERT INTO messageRecipeints ( msgId, userId, userType ) | |
| // SELECT $msgId, IF(staff_id, staff_id, student_id) AS userId, IF(staff_id, 'FACULTY', 'STUDENT') AS userType FROM message_user_group_users "; | |
| // try { | |
| // $this->executeQuery($sql); | |
| // } catch (\Exception $e) { | |
| // throw new ProfessionalException($e->getCode(), $e->getMessage()); | |
| // } | |
| // break; | |
| } | |
| } | |
| /** | |
| * @param Messages $messages | |
| * @throws ProfessionalException | |
| */ | |
| public function pushNotificationTov4App($api) | |
| { | |
| } | |
| } | |
| ?> |