Skip to content

Commit 23529c0

Browse files
committed
#6 implement enums for embed colours
1 parent 348d5c0 commit 23529c0

File tree

5 files changed

+35
-71
lines changed

5 files changed

+35
-71
lines changed

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
}
1313
],
1414
"require": {
15-
"php": "^8.0",
15+
"php": "^8.1",
1616
"guzzlehttp/guzzle": ">=7.2",
1717
"symfony/serializer": "^4.4.35 || ^5.3.12 || ^6.0",
1818
"doctrine/collections": "^1.6",

src/DiscordWebhook/Embed.php

Lines changed: 3 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -26,49 +26,6 @@ class Embed
2626
*/
2727
public const CONFIG_MAX_COUNT = 10;
2828

29-
/** @deprecated Use \DiscordWebhook\EmbedColor::class instead */
30-
public const COLOR_DEFAULT = EmbedColor::DEFAULT;
31-
/** @deprecated Use \DiscordWebhook\EmbedColor::class instead */
32-
public const COLOR_AQUA = EmbedColor::AQUA;
33-
/** @deprecated Use \DiscordWebhook\EmbedColor::class instead */
34-
public const COLOR_GREEN = EmbedColor::GREEN;
35-
/** @deprecated Use \DiscordWebhook\EmbedColor::class instead */
36-
public const COLOR_BLUE = EmbedColor::BLUE;
37-
/** @deprecated Use \DiscordWebhook\EmbedColor::class instead */
38-
public const COLOR_PURPLE = EmbedColor::PURPLE;
39-
/** @deprecated Use \DiscordWebhook\EmbedColor::class instead */
40-
public const COLOR_GOLD = EmbedColor::GOLD;
41-
/** @deprecated Use \DiscordWebhook\EmbedColor::class instead */
42-
public const COLOR_ORANGE = EmbedColor::ORANGE;
43-
/** @deprecated Use \DiscordWebhook\EmbedColor::class instead */
44-
public const COLOR_RED = EmbedColor::RED;
45-
/** @deprecated Use \DiscordWebhook\EmbedColor::class instead */
46-
public const COLOR_GREY = EmbedColor::GREY;
47-
/** @deprecated Use \DiscordWebhook\EmbedColor::class instead */
48-
public const COLOR_DARKER_GREY = EmbedColor::DARKER_GREY;
49-
/** @deprecated Use \DiscordWebhook\EmbedColor::class instead */
50-
public const COLOR_NAVY = EmbedColor::NAVY;
51-
/** @deprecated Use \DiscordWebhook\EmbedColor::class instead */
52-
public const COLOR_DARK_AQUA = EmbedColor::DARK_AQUA;
53-
/** @deprecated Use \DiscordWebhook\EmbedColor::class instead */
54-
public const COLOR_DARK_GREEN = EmbedColor::DARK_GREEN;
55-
/** @deprecated Use \DiscordWebhook\EmbedColor::class instead */
56-
public const COLOR_DARK_BLUE = EmbedColor::DARK_BLUE;
57-
/** @deprecated Use \DiscordWebhook\EmbedColor::class instead */
58-
public const COLOR_DARK_PURPLE = EmbedColor::DARK_PURPLE;
59-
/** @deprecated Use \DiscordWebhook\EmbedColor::class instead */
60-
public const COLOR_DARK_GOLD = EmbedColor::DARK_GOLD;
61-
/** @deprecated Use \DiscordWebhook\EmbedColor::class instead */
62-
public const COLOR_DARK_ORANGE = EmbedColor::DARK_ORANGE;
63-
/** @deprecated Use \DiscordWebhook\EmbedColor::class instead */
64-
public const COLOR_DARK_RED = EmbedColor::DARK_RED;
65-
/** @deprecated Use \DiscordWebhook\EmbedColor::class instead */
66-
public const COLOR_DARK_GREY = EmbedColor::DARK_GREY;
67-
/** @deprecated Use \DiscordWebhook\EmbedColor::class instead */
68-
public const COLOR_LIGHT_GREY = EmbedColor::LIGHT_GREY;
69-
/** @deprecated Use \DiscordWebhook\EmbedColor::class instead */
70-
public const COLOR_DARK_NAVY = EmbedColor::DARK_NAVY;
71-
7229
private ?string $title;
7330

7431
private ?string $type = 'rich';
@@ -79,7 +36,7 @@ class Embed
7936

8037
private ?DateTime $timestamp;
8138

82-
private ?int $color;
39+
private EmbedColor $color = EmbedColor::DEFAULT;
8340

8441
private ?Footer $footer;
8542

@@ -160,12 +117,12 @@ public function setTimestamp(?DateTime $timestamp): Embed
160117
return $this;
161118
}
162119

163-
public function getColor(): ?int
120+
public function getColor(): EmbedColor
164121
{
165122
return $this->color;
166123
}
167124

168-
public function setColor(?int $color): Embed
125+
public function setColor(EmbedColor $color): Embed
169126
{
170127
$this->color = $color;
171128

src/DiscordWebhook/EmbedColor.php

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,27 +3,27 @@
33

44
namespace DiscordWebhook;
55

6-
class EmbedColor
6+
enum EmbedColor: int
77
{
8-
public const DEFAULT = 0;
9-
public const AQUA = 1752220;
10-
public const GREEN = 3066993;
11-
public const BLUE = 3447003;
12-
public const PURPLE = 10181046;
13-
public const GOLD = 15844367;
14-
public const ORANGE = 15105570;
15-
public const RED = 15158332;
16-
public const GREY = 9807270;
17-
public const DARKER_GREY = 8359053;
18-
public const NAVY = 3426654;
19-
public const DARK_AQUA = 1146986;
20-
public const DARK_GREEN = 2067276;
21-
public const DARK_BLUE = 2123412;
22-
public const DARK_PURPLE = 7419530;
23-
public const DARK_GOLD = 12745742;
24-
public const DARK_ORANGE = 11027200;
25-
public const DARK_RED = 10038562;
26-
public const DARK_GREY = 9936031;
27-
public const LIGHT_GREY = 12370112;
28-
public const DARK_NAVY = 2899536;
8+
case DEFAULT = 0;
9+
case AQUA = 1752220;
10+
case GREEN = 3066993;
11+
case BLUE = 3447003;
12+
case PURPLE = 10181046;
13+
case GOLD = 15844367;
14+
case ORANGE = 15105570;
15+
case RED = 15158332;
16+
case GREY = 9807270;
17+
case DARKER_GREY = 8359053;
18+
case NAVY = 3426654;
19+
case DARK_AQUA = 1146986;
20+
case DARK_GREEN = 2067276;
21+
case DARK_BLUE = 2123412;
22+
case DARK_PURPLE = 7419530;
23+
case DARK_GOLD = 12745742;
24+
case DARK_ORANGE = 11027200;
25+
case DARK_RED = 10038562;
26+
case DARK_GREY = 9936031;
27+
case LIGHT_GREY = 12370112;
28+
case DARK_NAVY = 2899536;
2929
}

src/DiscordWebhook/Generator/PayloadGenerator.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
namespace DiscordWebhook\Generator;
55

6+
use BackedEnum;
67
use DateTimeInterface;
78
use SplFileInfo;
89
use Symfony\Component\Serializer\Encoder\JsonEncoder;
@@ -32,7 +33,8 @@ public function __construct()
3233
$defaultContext = [
3334
AbstractNormalizer::CALLBACKS => [
3435
'timestamp' => [$this, 'formatTimestamp'],
35-
'file' => [$this, 'formatFile']
36+
'file' => [$this, 'formatFile'],
37+
'color' => [$this, 'enumToValue']
3638
],
3739
AbstractObjectNormalizer::SKIP_NULL_VALUES => true
3840
];
@@ -101,4 +103,9 @@ public function formatFile($file): ?array
101103

102104
return null;
103105
}
106+
107+
public function enumToValue(BackedEnum $enum): mixed
108+
{
109+
return $enum->value;
110+
}
104111
}

tests/test.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
->setIconUrl('https://pbs.twimg.com/profile_images/1454563699587436557/KzhwN-fK_400x400.jpg')
3939
)
4040
)
41-
->setFile(new SplFileInfo(__DIR__ . '/lipsum.pdf'))
41+
// ->setFile(new SplFileInfo(__DIR__ . '/lipsum.pdf'))
4242
;
4343

4444
$wh->send();

0 commit comments

Comments
 (0)