
* wip * wip * wip * wip * fix * wip * wip * fix * fix * cs fix * #116 - fix * #116 - changed home-office icon * Apply suggestions from code review Co-authored-by: Krzysztof Rewak <krzysztof.rewak@gmail.com> * #116 - cr fix * #116 - cs fix * #116 - cs fix * Apply suggestions from code review Co-authored-by: Ewelina Lasowy <56546832+EwelinaLasowy@users.noreply.github.com> * #5 - bump codestyle Co-authored-by: EwelinaLasowy <ewelina.lasowy@blumilk.pl> Co-authored-by: Krzysztof Rewak <krzysztof.rewak@gmail.com> Co-authored-by: Ewelina Lasowy <56546832+EwelinaLasowy@users.noreply.github.com>
37 lines
948 B
PHP
37 lines
948 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Toby\Infrastructure\Slack\Channels;
|
|
|
|
use Illuminate\Http\Client\Response;
|
|
use Illuminate\Notifications\Notification;
|
|
use Illuminate\Support\Facades\Http;
|
|
use Toby\Domain\Notifications\Notifiable;
|
|
|
|
class SlackApiChannel
|
|
{
|
|
public function send(Notifiable $notifiable, Notification $notification): Response
|
|
{
|
|
$baseUrl = $this->getBaseUrl();
|
|
$url = "{$baseUrl}/chat.postMessage";
|
|
$channel = $notifiable->routeNotificationFor("slack", $notification);
|
|
|
|
return Http::withToken($this->getClientToken())
|
|
->post($url, [
|
|
"channel" => $channel,
|
|
"text" => $notification->toSlack($notifiable),
|
|
]);
|
|
}
|
|
|
|
protected function getClientToken(): string
|
|
{
|
|
return config("services.slack.client_token");
|
|
}
|
|
|
|
protected function getBaseUrl(): string
|
|
{
|
|
return config("services.slack.url");
|
|
}
|
|
}
|