37 lines
1.2 KiB
PHP
37 lines
1.2 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Toby\Infrastructure\Slack\Handlers;
|
|
|
|
use Illuminate\Support\Carbon;
|
|
use Illuminate\Support\Collection;
|
|
use Spatie\SlashCommand\Request;
|
|
use Spatie\SlashCommand\Response;
|
|
use Toby\Domain\DailySummaryRetriever;
|
|
use Toby\Infrastructure\Slack\Elements\AbsencesAttachment;
|
|
use Toby\Infrastructure\Slack\Elements\BirthdaysAttachment;
|
|
use Toby\Infrastructure\Slack\Elements\RemotesAttachment;
|
|
|
|
class DailySummary extends SignatureHandler
|
|
{
|
|
protected $signature = "toby dzisiaj";
|
|
protected $description = "Codzienne podsumowanie";
|
|
|
|
public function handle(Request $request): Response
|
|
{
|
|
$dailySummaryRetriever = app()->make(DailySummaryRetriever::class);
|
|
|
|
$now = Carbon::today();
|
|
|
|
$attachments = new Collection([
|
|
new AbsencesAttachment($dailySummaryRetriever->getAbsences($now)),
|
|
new RemotesAttachment($dailySummaryRetriever->getRemoteDays($now)),
|
|
new BirthdaysAttachment($dailySummaryRetriever->getBirthdays($now)),
|
|
]);
|
|
|
|
return $this->respondToSlack("Podsumowanie dla dnia {$now->toDisplayString()}")
|
|
->withAttachments($attachments->all());
|
|
}
|
|
}
|