Any way to change job queue? #45
-
Hello, It looks like we cant change job queue right now. DiscordAlert::to('default')->message('test')->onQueue('notifications'); this doesnt seem to work. Any ideas? |
Beta Was this translation helpful? Give feedback.
Answered by
erenkulaksiz
Mar 28, 2024
Replies: 1 comment
-
Nevermind. Made my own job to send discord alerts. I'm not an php expert so you can expect some anti patterns or bad code. app/Jobs/SendDiscordMessage.php <?php
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use App\Traits\DiscordMessager;
class SendDiscordMessage implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $message;
protected $types = [
'purchase' => 'https://discord.com/api/webhooks/x', // #TODO: Put these in .env
'cancel' => 'https://discord.com/api/webhooks/x',
'renew' => 'https://discord.com/api/webhooks/x',
'expire' => 'https://discord.com/api/webhooks/x'
];
protected $url;
protected $isRaw;
public function __construct($isRaw, $type, $message) {
$this->message = $message;
$this->isRaw = $isRaw;
if (array_key_exists($type, $this->types)) {
$this->url = $this->types[$type];
} else {
$this->url = $this->types['purchase'];
}
}
public function handle(): void {
if($this->isRaw) {
DiscordMessager::sendRawMessage($this->url, $this->message);
return;
}
DiscordMessager::sendMessage($this->url, $this->message);
}
} app/Traits/DiscordMessager.php <?php
namespace App\Traits;
use Illuminate\Support\Facades\Config;
use GuzzleHttp\Client;
use Carbon\Carbon;
use Illuminate\Support\Facades\Log;
trait DiscordMessager
{
public static function APIRequest($url, $data) {
$client = new Client();
try {
$response = $client->request('POST', $url, [
'json' => $data,
'headers' => [
'Content-Type' => 'application/json',
]
]);
if ($response->getStatusCode() == 200) {
$responseData = json_decode($response->getBody()->getContents(), true);
//Log::info('Discord API Response: ' . json_encode($responseData));
return $responseData;
} else {
Log::error('Discord API Error: ' . $response->getStatusCode() . ' - ' . $response->getBody()->getContents());
return false;
}
} catch (\Exception $e) {
Log::error('Discord API Error: ' . $e->getMessage());
return false;
}
}
public static function sendRawMessage($url, $message) {
$data = [
'content' => $message
];
return self::APIRequest($url, $data);
}
public static function sendMessage($url, $message) {
return self::APIRequest($url, $message);
}
} |
Beta Was this translation helpful? Give feedback.
0 replies
Answer selected by
erenkulaksiz
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Nevermind. Made my own job to send discord alerts. I'm not an php expert so you can expect some anti patterns or bad code.
app/Jobs/SendDiscordMessage.php