* 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>
This commit is contained in:
22
app/Infrastructure/Slack/Elements/AbsencesAttachment.php
Normal file
22
app/Infrastructure/Slack/Elements/AbsencesAttachment.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Toby\Infrastructure\Slack\Elements;
|
||||
|
||||
use Illuminate\Support\Collection;
|
||||
use Toby\Eloquent\Models\Vacation;
|
||||
|
||||
class AbsencesAttachment extends ListAttachment
|
||||
{
|
||||
public function __construct(Collection $absences)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
$this
|
||||
->setTitle("Nieobecności :palm_tree:")
|
||||
->setColor("#eab308")
|
||||
->setItems($absences->map(fn(Vacation $vacation): string => $vacation->user->profile->full_name))
|
||||
->setEmptyText("Wszyscy dzisiaj pracują :muscle:");
|
||||
}
|
||||
}
|
12
app/Infrastructure/Slack/Elements/Attachment.php
Normal file
12
app/Infrastructure/Slack/Elements/Attachment.php
Normal file
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Toby\Infrastructure\Slack\Elements;
|
||||
|
||||
use Illuminate\Contracts\Support\Arrayable;
|
||||
use Spatie\SlashCommand\Attachment as BaseAttachment;
|
||||
|
||||
class Attachment extends BaseAttachment implements Arrayable
|
||||
{
|
||||
}
|
22
app/Infrastructure/Slack/Elements/BirthdaysAttachment.php
Normal file
22
app/Infrastructure/Slack/Elements/BirthdaysAttachment.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Toby\Infrastructure\Slack\Elements;
|
||||
|
||||
use Illuminate\Support\Collection;
|
||||
use Toby\Eloquent\Models\User;
|
||||
|
||||
class BirthdaysAttachment extends ListAttachment
|
||||
{
|
||||
public function __construct(Collection $birthdays)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
$this
|
||||
->setTitle("Urodziny :birthday:")
|
||||
->setColor("#3c5f97")
|
||||
->setItems($birthdays->map(fn(User $user): string => $user->profile->full_name))
|
||||
->setEmptyText("Dzisiaj nikt nie ma urodzin :cry:");
|
||||
}
|
||||
}
|
21
app/Infrastructure/Slack/Elements/KeysAttachment.php
Normal file
21
app/Infrastructure/Slack/Elements/KeysAttachment.php
Normal file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Toby\Infrastructure\Slack\Elements;
|
||||
|
||||
use Illuminate\Support\Collection;
|
||||
use Toby\Eloquent\Models\Key;
|
||||
|
||||
class KeysAttachment extends ListAttachment
|
||||
{
|
||||
public function __construct(Collection $keys)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
$this
|
||||
->setColor("#3c5f97")
|
||||
->setItems($keys->map(fn(Key $key): string => "Klucz nr {$key->id} - <@{$key->user->profile->slack_id}>"))
|
||||
->setEmptyText("Nie ma żadnych kluczy w tobym");
|
||||
}
|
||||
}
|
36
app/Infrastructure/Slack/Elements/ListAttachment.php
Normal file
36
app/Infrastructure/Slack/Elements/ListAttachment.php
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Toby\Infrastructure\Slack\Elements;
|
||||
|
||||
use Illuminate\Support\Collection;
|
||||
|
||||
class ListAttachment extends Attachment
|
||||
{
|
||||
protected Collection $items;
|
||||
protected string $emptyText = "";
|
||||
|
||||
public function setItems(Collection $items): static
|
||||
{
|
||||
$this->items = $items;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function setEmptyText(string $emptyText): static
|
||||
{
|
||||
$this->emptyText = $emptyText;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function toArray(): array
|
||||
{
|
||||
$fields = parent::toArray();
|
||||
|
||||
return array_merge($fields, [
|
||||
"text" => $this->items->isNotEmpty() ? $this->items->implode("\n") : $this->emptyText,
|
||||
]);
|
||||
}
|
||||
}
|
22
app/Infrastructure/Slack/Elements/RemotesAttachment.php
Normal file
22
app/Infrastructure/Slack/Elements/RemotesAttachment.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Toby\Infrastructure\Slack\Elements;
|
||||
|
||||
use Illuminate\Support\Collection;
|
||||
use Toby\Eloquent\Models\Vacation;
|
||||
|
||||
class RemotesAttachment extends ListAttachment
|
||||
{
|
||||
public function __construct(Collection $remoteDays)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
$this
|
||||
->setTitle("Praca zdalna :house_with_garden:")
|
||||
->setColor("#527aba")
|
||||
->setItems($remoteDays->map(fn(Vacation $vacation): string => $vacation->user->profile->full_name))
|
||||
->setEmptyText("Wszyscy dzisiaj są w biurze :boom:");
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user