From 4210ab538427dffe1d51f2b49295b673e302302b Mon Sep 17 00:00:00 2001 From: Jagad R R Date: Sat, 4 Jan 2025 14:09:28 +0700 Subject: [PATCH] added url to whatsapp notif, email soon --- app/Helpers/WhatsappHelper.php | 141 ++++++++++-------- .../Forms/FormMeetingSeminarController.php | 9 +- .../Forms/FormUpCountryController.php | 9 +- 3 files changed, 89 insertions(+), 70 deletions(-) diff --git a/app/Helpers/WhatsappHelper.php b/app/Helpers/WhatsappHelper.php index ed06a60..0847f35 100644 --- a/app/Helpers/WhatsappHelper.php +++ b/app/Helpers/WhatsappHelper.php @@ -8,81 +8,94 @@ use Illuminate\Support\Str; class WhatsappHelper { - public static function approveExpense($phones, $expense_number) + public static function approveExpense($phones, $expense_number, $url = null) { - $client = new Client(); + $client = new Client(); - $data = []; - foreach ($phones as $phone) { - $data[] = [ - 'phone' => $phone, - 'message' => 'Pengajuan pengeluaran anda dengan nomor *' . $expense_number . '* telah disetujui. Silahkan buka website untuk melihat detailnya.', - 'source' => 'web' - ]; - } + // Ensure the URL is formatted correctly + if ($url && !preg_match('/^https?:\/\//', $url)) { + $url = 'https://' . $url; + } - $response = $client->post(env('WABLAS_HOST') . '/api/v2/send-message', [ - 'headers' => [ - 'Authorization' => env('WABLAS_TOKEN'), - 'Content-Type' => 'application/json' - ], - 'json' => [ - 'data' => $data - ] - ]); + $data = []; + foreach ($phones as $phone) { + $data[] = [ + 'phone' => $phone, + 'message' => 'Pengajuan pengeluaran anda dengan nomor *' . $expense_number . '* telah disetujui. Silahkan buka link berikut untuk melihat detailnya: ' . $url, + 'source' => 'web' + ]; + } - return $response->getBody()->getContents(); + $response = $client->post(env('WABLAS_HOST') . '/api/v2/send-message', [ + 'headers' => [ + 'Authorization' => env('WABLAS_TOKEN'), + 'Content-Type' => 'application/json' + ], + 'json' => [ + 'data' => $data + ] + ]); + + return $response->getBody()->getContents(); } - public static function rejectExpense($phones, $expense_number) - { - $client = new Client(); + public static function rejectExpense($phones, $expense_number, $url = null) + { + $client = new Client(); - $data = []; - foreach ($phones as $phone) { - $data[] = [ - 'phone' => $phone, - 'message' => 'Pengajuan pengeluaran anda dengan nomor *' . $expense_number . '* telah ditolak. Silahkan buka website untuk melihat detailnya.', - 'source' => 'web' - ]; - } + if ($url && !preg_match('/^https?:\/\//', $url)) { + $url = 'https://' . $url; + } - $response = $client->post(env('WABLAS_HOST') . '/api/v2/send-message', [ - 'headers' => [ - 'Authorization' => env('WABLAS_TOKEN'), - 'Content-Type' => 'application/json' - ], - 'json' => [ - 'data' => $data - ] - ]); + $data = []; + foreach ($phones as $phone) { + $data[] = [ + 'phone' => $phone, + 'message' => 'Pengajuan pengeluaran anda dengan nomor *' . $expense_number . '* telah ditolak. Silahkan buka link berikut untuk melihat detailnya: ' . $url, + 'source' => 'web' + ]; + } - return $response->getBody()->getContents(); - } + $response = $client->post(env('WABLAS_HOST') . '/api/v2/send-message', [ + 'headers' => [ + 'Authorization' => env('WABLAS_TOKEN'), + 'Content-Type' => 'application/json' + ], + 'json' => [ + 'data' => $data + ] + ]); - public static function finalApprove($phones, $expense_number) - { - $client = new Client(); + return $response->getBody()->getContents(); + } - $data = []; - foreach ($phones as $phone) { - $data[] = [ - 'phone' => $phone, - 'message' => 'Pengajuan pengeluaran anda dengan nomor *' . $expense_number . '* telah ditutup karena telah selesai diproses. Silahkan buka website untuk melihat detailnya.', - 'source' => 'web' - ]; - } + public static function finalApprove($phones, $expense_number, $url = null) + { + $client = new Client(); - $response = $client->post(env('WABLAS_HOST') . '/api/v2/send-message', [ - 'headers' => [ - 'Authorization' => env('WABLAS_TOKEN'), - 'Content-Type' => 'application/json' - ], - 'json' => [ - 'data' => $data - ] - ]); + if ($url && !preg_match('/^https?:\/\//', $url)) { + $url = 'https://' . $url; + } - return $response->getBody()->getContents(); - } + $data = []; + foreach ($phones as $phone) { + $data[] = [ + 'phone' => $phone, + 'message' => 'Pengajuan pengeluaran anda dengan nomor *' . $expense_number . '* telah ditutup karena telah selesai diproses. Silahkan buka link berikut untuk melihat detailnya: ' . $url, + 'source' => 'web' + ]; + } + + $response = $client->post(env('WABLAS_HOST') . '/api/v2/send-message', [ + 'headers' => [ + 'Authorization' => env('WABLAS_TOKEN'), + 'Content-Type' => 'application/json' + ], + 'json' => [ + 'data' => $data + ] + ]); + + return $response->getBody()->getContents(); + } } diff --git a/app/Http/Controllers/Forms/FormMeetingSeminarController.php b/app/Http/Controllers/Forms/FormMeetingSeminarController.php index 42cd22b..58be413 100644 --- a/app/Http/Controllers/Forms/FormMeetingSeminarController.php +++ b/app/Http/Controllers/Forms/FormMeetingSeminarController.php @@ -343,7 +343,8 @@ class FormMeetingSeminarController extends Controller // )); // Send bulk WhatsApp message - WhatsappHelper::approveExpense($phoneNumbers, $expense_number); + $url = route('forms.meeting.view', $form->id); + WhatsappHelper::approveExpense($phoneNumbers, $expense_number, $url); AuditTrailHelper::AddAuditTrail('Approve', 'Approve Expense at Form Meeting Seminar (' . $form->expense_number . ')'); session()->flash('success', 'Form has been approved.'); @@ -399,7 +400,8 @@ class FormMeetingSeminarController extends Controller // )); // send whatsapp message - WhatsappHelper::finalApprove($phoneNumbers, $expense_number); + $url = route('forms.meeting.view', $form->id); + WhatsappHelper::finalApprove($phoneNumbers, $expense_number, $url); AuditTrailHelper::AddAuditTrail('Final Approve', 'Final Approve Expense at Form Meeting Seminar (' . $form->expense_number . ')'); session()->flash('success', 'Form has been final approved.'); @@ -464,7 +466,8 @@ class FormMeetingSeminarController extends Controller // )); // Send bulk WhatsApp message - WhatsappHelper::rejectExpense($phoneNumbers, $expense_number); + $url = route('forms.meeting.view', $form->id); + WhatsappHelper::rejectExpense($phoneNumbers, $expense_number, $url); AuditTrailHelper::AddAuditTrail('Reject', 'Reject Expense at Form Meeting Seminar (' . $form->expense_number . ')'); session()->flash('success', 'Form has been rejected.'); diff --git a/app/Http/Controllers/Forms/FormUpCountryController.php b/app/Http/Controllers/Forms/FormUpCountryController.php index a8b07f3..404bb7a 100644 --- a/app/Http/Controllers/Forms/FormUpCountryController.php +++ b/app/Http/Controllers/Forms/FormUpCountryController.php @@ -401,7 +401,8 @@ class FormUpCountryController extends Controller // )); // send whatsapp message - WhatsappHelper::approveExpense($phoneNumbers, $expense_number); + $url = route('forms.up-country.view', $form->id); + WhatsappHelper::approveExpense($phoneNumbers, $expense_number, $url); AuditTrailHelper::AddAuditTrail('Approve', 'Approve Expense at Form Entertainment Presentation (' . $form->expense_number . ')'); session()->flash('success', 'Form has been approved.'); @@ -450,7 +451,8 @@ class FormUpCountryController extends Controller // )); // send whatsapp message - WhatsappHelper::rejectExpense($phoneNumbers, $expense_number); + $url = route('forms.up-country.view', $form->id); + WhatsappHelper::rejectExpense($phoneNumbers, $expense_number, $url); AuditTrailHelper::AddAuditTrail('Reject', 'Reject Expense at Form Entertainment Presentation (' . $form->expense_number . ')'); session()->flash('success', 'Form has been rejected.'); @@ -506,7 +508,8 @@ class FormUpCountryController extends Controller // )); // send whatsapp message - WhatsappHelper::finalApprove($phoneNumbers, $expense_number); + $url = route('forms.up-country.view', $form->id); + WhatsappHelper::finalApprove($phoneNumbers, $expense_number, $url); AuditTrailHelper::AddAuditTrail('Final Approve', 'Final Approve Expense at Form Entertainment Presentation (' . $form->expense_number . ')'); session()->flash('success', 'Form has been final approved.');