Implement seeders instead of seeding using migrations, log whatasapp message

This commit is contained in:
Afiq Hamzah
2024-06-05 16:04:39 +08:00
parent cbf6bd5f1f
commit ab6ee95d64
5 changed files with 114 additions and 32 deletions
+14 -11
View File
@@ -104,19 +104,22 @@ class SettingController extends Controller
// flushed the fail job in queueu
Artisan::call('queue:flush');
$getClassNameString = function($className){
$ola = explode("\\", $className);
return end($ola);
$getClassNameString = function ($className) {
$name = explode("\\", $className);
return end($name);
};
DB::connection('mysql7')
->table('jobs')
->where('payload', 'like', '%' . $getClassNameString(WhatsappUnsoldCommodityNotification::class) . '%')
->delete();
$commodityNotificationClasses = [
WhatsappUnsoldCommodityNotification::class,
WhatsappUnsoldCommodityScanner::class,
];
DB::connection('mysql7')
->table('jobs')
->where('payload', 'like', '%' . $getClassNameString(WhatsappUnsoldCommodityScanner::class) . '%')
->delete();
foreach ($commodityNotificationClasses as $class) {
DB::connection('mysql7')
->table('jobs')
->where('payload', 'like', '%' . $getClassNameString($class) . '%')
->delete();
}
}
}
@@ -2,6 +2,7 @@
namespace App\Jobs;
use App\BlastWasap;
use Illuminate\Support\Facades\Http;
use App\Setting;
use Carbon\Carbon;
@@ -64,20 +65,35 @@ class WhatsappUnsoldCommodityNotification extends Job
return false;
}
// if (!$isKomoditiStillAvailable) {
// return false;
// }
if (!$isKomoditiStillAvailable) {
return false;
}
foreach ($phone_numbers as $phone_number) {
Http::get(env('WABOT_API'), [
$response = Http::get(env('WABOT_API'), [
'number' => $phone_number,
'type' => 'text',
'message' => $message,
'instance_id' => env('WABOT_INSTANCES_ID'),
'access_token' => env('WABOT_TOKEN_KEYS')
]);
//insert log blast wasap
$logblastwasap = new BlastWasap();
$logblastwasap->kodcaw = 'OPERASI';
$logblastwasap->notelefon = $phone_number;
$logblastwasap->norujukan = 'Notifikasi Komoditi Tidak Terjual';
$logblastwasap->status = $response;
$logblastwasap->created_at = Carbon::now();
$logblastwasap->updated_at = Carbon::now();
$logblastwasap->save();
Log::info("WABOT - Notifikasi Komoditi Tidak Terjual".$response);
}
dispatch((new WhatsappUnsoldCommodityNotification($this->message))->delay(Carbon::now()->addMinutes(5)));
}
@@ -21,6 +21,10 @@ class CreateSettingsTable extends Migration
$table->text('description')->nullable();
$table->timestamps();
});
// Call the seeder
(new UnsoldCommodityNotificationSettingSeeders())->run();
(new UnsoldCommodityNotificationPICSeeders())->run();
}
/**
@@ -0,0 +1,70 @@
<?php
use App\Setting;
use Illuminate\Database\Seeder;
class UnsoldCommodityNotificationPICSeeders extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$data_pic = [
'pic_sunday' => [
[
'id' => 366, // nurasiah@pkb.net.my
'no_telefon' => '0123456789',
]
],
'pic_monday' => [
[
'id' => 343, // syada@pkb.net.my
'no_telefon' => '0139403344',
],
[
'id' => 54, // shahmin@pkb.net.my
'no_telefon' => '0196438873',
]
],
'pic_tuesday' => [
[
'id' => 55, // manita@pkb.net.my
'no_telefon' => '0179545432',
]
],
'pic_wednesday' => [
[
'id' => 52, // izzudin@pkb.net.my
'no_telefon' => '0199011095',
]
],
'pic_thursday' => [
[
'id' => 53, // norosmini@pkb.net.my
'no_telefon' => '0129493588',
],
[
'id' => 56, // rozarina@pkb.net.my
'no_telefon' => '0129616201',
],
],
'pic_friday' => [[]],
'pic_saturday' => [[]],
];
$transformed_data = array_map(function($pic){
return json_encode($pic);
}, $data_pic);
$outputs = array_combine(array_keys($data_pic), $transformed_data);
foreach ($outputs as $key => $data) {
Setting::where('group', 'unsold_commodity_notifications')
->where('key', $key)
->update(['value' => $data]);
}
}
}
@@ -1,22 +1,21 @@
<?php
use App\Setting;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Seeder;
class AddUnsoldCommoditiesSettings extends Migration
class UnsoldCommodityNotificationSettingSeeders extends Seeder
{
/**
* Run the migrations.
* Run the database seeds.
*
* @return void
*/
public function up()
public function run()
{
$data = [
[
'key' => 'status',
'value' => 'true',
'value' => '1',
'group' => 'unsold_commodity_notifications',
'description' => 'Turn on or turn off notification for unsold commodity notifications',
],
@@ -83,18 +82,8 @@ class AddUnsoldCommoditiesSettings extends Migration
];
array_walk($data, function($setting){
array_walk($data, function ($setting) {
Setting::create($setting);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('settings');
}
}