* 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");
 | 
						|
    }
 | 
						|
}
 |