+ Optimize the sending of mail and notification

This commit is contained in:
Djery-Tom 2020-12-06 17:54:17 +01:00
parent 4b6fe6f92f
commit ee30c51075
2 changed files with 57 additions and 39 deletions

View File

@ -39,34 +39,40 @@ trait Helper
{ {
public function sendMail($email, $title, $messageText) public function sendMail($email, $title, $messageText)
{ {
try {
$recipients = [preg_replace("/\s+/", "", $email)]; // Supprimer les espaces dans le mail
Mail::mailer('smtp')->raw($messageText, function ($message) use ($recipients, $title) {
$message->subject($title);
$message->to($recipients);
});
} catch (\Throwable $t) {
Log::error('-------- Mail not sent -----------');
Log::error($t->getMessage());
}
$recipients = [preg_replace("/\s+/", "", $email)]; // Supprimer les espaces dans le mail
Mail::mailer('smtp')->raw($messageText, function ($message) use ($recipients, $title) {
$message->subject($title);
$message->to($recipients);
});
// return $this->successResponse("mail envoye"); // return $this->successResponse("mail envoye");
} }
public function sendPushNotificationToUser($user_code, $message, $data = null, $date = null) public function sendPushNotificationToUser($user_code, $message, $data = null, $date = null)
{ {
$client = new \GuzzleHttp\Client([
'base_uri' => env('NOTIFICATION_SERVICE_URL'),
]);
$headers = [
'Authorization' => env('NOTIFICATION_SERVICE_KEY'),
];
$body = new \stdClass();
$body->user_code = $user_code;
$body->message = $message;
$body->data = $data;
try { try {
$body->date = ($date instanceof \DateTime) ? $date->format('Y-m-d H:i:s') : $date; $client = new \GuzzleHttp\Client([
} catch (\Throwable $t) { 'base_uri' => env('NOTIFICATION_SERVICE_URL'),
Log::error($t->getTraceAsString()); ]);
$body->date = $date; $headers = [
} 'Authorization' => env('NOTIFICATION_SERVICE_KEY'),
$promise = $client->requestAsync('POST', '/onesignal/pushToUser', ['json' => $body, 'headers' => $headers])->then(); ];
$body = new \stdClass();
$body->user_code = $user_code;
$body->message = $message;
$body->data = $data;
try {
$body->date = ($date instanceof \DateTime) ? $date->format('Y-m-d H:i:s') : $date;
} catch (\Throwable $t) {
Log::error($t->getMessage());
$body->date = $date;
}
$promise = $client->requestAsync('POST', '/onesignal/pushToUser', ['json' => $body, 'headers' => $headers])->then();
// function (ResponseInterface $res) { // function (ResponseInterface $res) {
// echo $res->getStatusCode() . "\n"; // echo $res->getStatusCode() . "\n";
// }, // },
@ -75,30 +81,40 @@ trait Helper
// echo $e->getRequest()->getMethod(); // echo $e->getRequest()->getMethod();
// } // }
// ); // );
$promise->wait(); $promise->wait();
// return $response->getBody()->getContents(); // return $response->getBody()->getContents();
} catch (\Throwable $t) {
Log::error('-------- User notification not sent-----------');
Log::error($t->getMessage());
}
} }
public function sendPushNotificationToAgent($agent_code, $message, $data = null, $date = null) public function sendPushNotificationToAgent($agent_code, $message, $data = null, $date = null)
{ {
$client = new \GuzzleHttp\Client([
'base_uri' => env('NOTIFICATION_SERVICE_URL'),
]);
$headers = [
'Authorization' => env('NOTIFICATION_SERVICE_KEY'),
];
$body = new \stdClass();
$body->agent_code = $agent_code;
$body->message = $message;
$body->data = $data;
try { try {
$body->date = ($date instanceof \DateTime) ? $date->format('Y-m-d H:i:s') : $date; $client = new \GuzzleHttp\Client([
'base_uri' => env('NOTIFICATION_SERVICE_URL'),
]);
$headers = [
'Authorization' => env('NOTIFICATION_SERVICE_KEY'),
];
$body = new \stdClass();
$body->agent_code = $agent_code;
$body->message = $message;
$body->data = $data;
try {
$body->date = ($date instanceof \DateTime) ? $date->format('Y-m-d H:i:s') : $date;
} catch (\Throwable $t) {
Log::error($t->getMessage());
$body->date = $date;
}
$promise = $client->requestAsync('POST', '/onesignal/pushToAgent', ['json' => $body, 'headers' => $headers])->then();
$promise->wait();
} catch (\Throwable $t) { } catch (\Throwable $t) {
Log::error($t->getTraceAsString()); Log::error('-------- Agent notification not sent-----------');
$body->date = $date; Log::error($t->getMessage());
} }
$promise = $client->requestAsync('POST', '/onesignal/pushToAgent', ['json' => $body, 'headers' => $headers])->then();
$promise->wait();
} }
public function checkPassword($password, $encrypted_password, $salt) public function checkPassword($password, $encrypted_password, $salt)

View File

@ -45,9 +45,11 @@ return [
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
*/ */
'middleware' => [ 'middleware' => [
'api' => ['docs'], // 'api' => ['docs'],
'api' => [],
'asset' => [], 'asset' => [],
'docs' => ['docs'], // 'docs' => ['docs'],
'docs' => [],
'oauth2_callback' => [], 'oauth2_callback' => [],
], ],
], ],