nhance/app/Helpers/GmailResponseHandler.php

130 lines
5.8 KiB
PHP

<?php
namespace App\Helpers;
use App\Models\EmployeePolicyModel;
use App\Models\GmailSentHistoryModel;
use Exception;
class GmailResponseHandler{
private $myLogger;
public function __construct()
{
$this->myLogger = \Config\Services::mylogger();
}
public function receive_and_distribute_param_to_functions($params)
{
try{
$this->store_gmail_response_data($params);
$this->gmail_response_logger($params);
$this->client_id_flag_setter($params);
}
catch(Exception $e)
{
$error = $e->getMessage();
echo "An Error Occured" . $error;
log_message('error',$error);
}
}
public function store_gmail_response_data($params){
// foreach ($params as $key => $value){
// $prepare_data = [
// $key => $value
// ];
// }
// $data = [
// 'email' => isset($params['params']['mail']) ? $params['params']['mail'] : null,
// 'bcc' => isset($params['params']['bcc']) ? json_encode($params['params']['bcc']) : null,
// 'cc' => isset($params['params']['cc']) ? json_encode($params['params']['cc']) : null,
// 'message' => isset($params['params']['message']) ? $params['params']['message'] : null,
// 'attachments' => isset($params['params']['attachments']) ? json_encode($params['params']['attachments']) : null,
// 'client_id' => isset($params['params']['common']['client_id']) ? $params['params']['common']['client_id'] : null,
// 'client_branch_id' => isset($params['params']['common']['client_branch_id']) ? $params['params']['common']['client_branch_id'] : null,
// 'client_policy_id' => isset($params['params']['common']['client_policy_id']) ? $params['params']['common']['client_policy_id'] : null,
// 'employee_policy_id' => isset($params['params']['common']['employee_policy_id']) ? $params['params']['common']['employee_policy_id'] : null,
// 'employee_id' => isset($params['params']['common']['employee_id']) ? $params['params']['common']['employee_id'] : null,
// 'mail_type' => isset($params['params']['common']['mail_type']) ? $params['params']['common']['mail_type'] : null,
// 'gmail_api_status' => isset($params['gmail_api']['status']) ? $params['gmail_api']['status'] : null,
// 'gmail_api_id' => isset($params['gmail_api']['data']['id']) ? $params['gmail_api']['data']['id'] : null,
// 'received_message' => isset($params['gmail_api']['data']['labelIds'])?json_encode($params['gmail_api']['data']['labelIds']): null
// ];
// Initialize data array
$data = [];
// // print_r($params['params']['common']);die();
if (isset($params['params']['common'])) {
foreach ($params['params']['common'] as $key => $value) {
$data[$key] = isset($value) ? $value : null;
}
unset($params['params']['common']);
}
if (isset($params['params'])){
foreach($params['params'] as $key => $value){
$arr = ['bcc','cc','attachments'];
if(in_array($key,$arr)){
$data[$key] = isset($value)?json_encode($value):null;
}else{
if($key == "mail" && is_array($value)){
$data[$key] = isset($value)?json_encode($value):null;
}else{
$data[$key] = isset($value)?$value:null;
}
}
}
}
if(isset($params['zepto_api']['data']) && $params['zepto_api']['message'] == 'OK' ){
$data['gmail_api_status'] = isset($params['zepto_api']['data']) ? $params['zepto_api']['data'][0]['code'] : null;
$data['gmail_api_id'] = isset($params['zepto_api']['request_id']) ? $params['zepto_api']['request_id'] : null;
$data['received_message'] = isset($params['zepto_api']['data'][0]['message']) ? json_encode($params['zepto_api']['data'][0]['message']) : null;
}
elseif(isset($params['zepto_api']['error'])){
$data['gmail_api_status'] = isset($params['zepto_api']['error']['code'])?$params['zepto_api']['error']['code']:null;
$data['received_message'] = json_encode($params['zepto_api']);
$data['gmail_api_id'] = isset($params['zepto_api']['error']['request_id']) ? $params['zepto_api']['error']['request_id'] : null;
}
$gmailModel = new GmailSentHistoryModel();
$save_status = $gmailModel->insert($data);
}
public function gmail_response_logger($params)
{
if(isset($params['zepto_api']['error'])){
$this->myLogger->logme('error',json_encode($params));
}
}
public function client_id_flag_setter($params)
{
try{
if (isset($params['params']['common']['mail_type'])){
if($params['params']['common']['mail_type'] == 'member_ecard_mail'){
$employeePolicyModel = new EmployeePolicyModel();
$update_status = $employeePolicyModel->where('id',$params['params']['common']['employee_policy_id'])->set('ecard_sent_status',1)->update();
if($update_status){
$this->myLogger->logme('error',"ecard_sent_status updated for ".$params['params']['common']['employee_policy_id']);
}else{
$this->myLogger->logme('error','ecard_sent_status failed to update');
}
}
}
}
catch(Exception $e){
$error = $e->getMessage();
$this->myLogger->logme('error','An Error Occured - '.$error);
}
}
}