From 6210645b5d5cb21a500a41c9242706ea22333560 Mon Sep 17 00:00:00 2001 From: Djery-Tom Date: Sun, 6 Dec 2020 17:55:00 +0100 Subject: [PATCH] + Optimize the sending of mail and notification --- app/Http/Controllers/UserController.php | 2 +- app/Traits/Helper.php | 91 +++++++++++++++---------- config/swagger-lume.php | 4 +- 3 files changed, 58 insertions(+), 39 deletions(-) diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 4106d60..35ed681 100755 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -97,7 +97,7 @@ class UserController extends Controller * @OA\Property(property="town", * type="string", * minLength=3, - * default="Douala ", + * default="Douala", * description="Ville de residence de l'utilisateur" * ), * diff --git a/app/Traits/Helper.php b/app/Traits/Helper.php index 6bcee92..bfbb62f 100644 --- a/app/Traits/Helper.php +++ b/app/Traits/Helper.php @@ -31,6 +31,7 @@ use Illuminate\Http\Request; use Illuminate\Pagination\LengthAwarePaginator; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Input; +use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Mail; use PDO; @@ -38,33 +39,40 @@ trait Helper { 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)]; - Mail::mailer('smtp')->raw($messageText, function ($message) use ($recipients, $title) { - $message->subject($title); - $message->to($recipients); - }); // return $this->successResponse("mail envoye"); } 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{ - $body->date = $date->format('Y-m-d H:i:s'); - }catch (\Exception $e){ - $body->date = $date; - } - $promise = $client->requestAsync('POST', '/onesignal/pushToUser', ['json' => $body, 'headers' => $headers])->then(); + $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 { + $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) { // echo $res->getStatusCode() . "\n"; // }, @@ -73,29 +81,40 @@ trait Helper // echo $e->getRequest()->getMethod(); // } // ); - $promise->wait(); + $promise->wait(); // 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) { - $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->format('Y-m-d H:i:s'); - }catch (\Exception $e){ - $body->date = $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){ + Log::error('-------- Agent notification not sent-----------'); + Log::error($t->getMessage()); } - $promise = $client->requestAsync('POST', '/onesignal/pushToAgent', ['json' => $body, 'headers' => $headers])->then(); - $promise->wait(); } public function checkPassword($password, $encrypted_password, $salt) diff --git a/config/swagger-lume.php b/config/swagger-lume.php index 3c28a02..2f67c96 100644 --- a/config/swagger-lume.php +++ b/config/swagger-lume.php @@ -45,9 +45,9 @@ return [ |-------------------------------------------------------------------------- */ 'middleware' => [ - 'api' => ['docs'], + 'api' => [], 'asset' => [], - 'docs' => ['docs'], + 'docs' => [], 'oauth2_callback' => [], ], ],