File tree Expand file tree Collapse file tree 8 files changed +98
-45
lines changed Expand file tree Collapse file tree 8 files changed +98
-45
lines changed Original file line number Diff line number Diff line change @@ -73,6 +73,7 @@ TORCHLIGHT_TOKEN=
7373MIX_TORCHLIGHT_TOKEN = " ${ TORCHLIGHT_TOKEN } "
7474UNSPLASH_ACCESS_KEY =
7575TELEGRAM_BOT_TOKEN =
76+ TELEGRAM_CHANNEL =
7677MEDIA_DISK = media
7778SENTRY_LARAVEL_DSN =
7879SENTRY_TRACES_SAMPLE_RATE =
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace App \Events ;
4+
5+ use App \Models \Article ;
6+ use Illuminate \Queue \SerializesModels ;
7+
8+ class ArticleWasSubmittedForApproval
9+ {
10+ use SerializesModels;
11+
12+ public function __construct (
13+ public Article $ article
14+ ) {
15+ }
16+ }
Original file line number Diff line number Diff line change 22
33namespace App \Http \Livewire \Articles ;
44
5+ use App \Events \ArticleWasSubmittedForApproval ;
56use App \Gamify \Points \PostCreated ;
67use App \Models \Article ;
78use App \Models \Tag ;
89use App \Models \User ;
9- use App \Notifications \SendSubmittedArticle ;
1010use App \Traits \WithArticleAttributes ;
1111use App \Traits \WithTagsAssociation ;
1212use Illuminate \Support \Facades \Auth ;
@@ -67,10 +67,9 @@ public function store()
6767 $ article ->addMedia ($ this ->file ->getRealPath ())->toMediaCollection ('media ' );
6868 }
6969
70- if ($ article ->submitted_at ) {
71- // Envoi du mail à l'admin pour la validation de l'article.
72- $ admin = User::findByEmailAddress ('monneylobe@gmail.com ' );
73- Notification::send ($ admin , new SendSubmittedArticle ($ article ));
70+ if ($ article ->isAwaitingApproval ()) {
71+ // Envoi de la notification sur le channel Telegram pour la validation de l'article.
72+ event (new ArticleWasSubmittedForApproval ($ article ));
7473
7574 session ()->flash ('status ' , 'Merci d \'avoir soumis votre article. Vous aurez des nouvelles que lorsque nous accepterons votre article. ' );
7675 }
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace App \Listeners ;
4+
5+ use App \Events \ArticleWasSubmittedForApproval ;
6+ use App \Notifications \ArticleSubmitted ;
7+ use Illuminate \Notifications \AnonymousNotifiable ;
8+
9+ final class SendNewArticleNotification
10+ {
11+ public function __construct (private AnonymousNotifiable $ notifiable )
12+ {
13+ }
14+
15+ public function handle (ArticleWasSubmittedForApproval $ event ): void
16+ {
17+ $ this ->notifiable ->notify (new ArticleSubmitted ($ event ->article ));
18+ }
19+ }
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace App \Notifications ;
4+
5+ use App \Models \Article ;
6+ use Illuminate \Bus \Queueable ;
7+ use Illuminate \Contracts \Queue \ShouldQueue ;
8+ use Illuminate \Notifications \Notification ;
9+ use NotificationChannels \Telegram \TelegramChannel ;
10+ use NotificationChannels \Telegram \TelegramMessage ;
11+
12+ class ArticleSubmitted extends Notification implements ShouldQueue
13+ {
14+ use Queueable;
15+
16+ public function __construct (private Article $ article )
17+ {
18+ }
19+
20+ public function via ($ notifiable )
21+ {
22+ if (
23+ ! empty (config ('services.telegram-bot-api.token ' )) &&
24+ ! empty (config ('services.telegram-bot-api.channel ' ))
25+ ) {
26+ return [TelegramChannel::class];
27+ }
28+
29+ return [];
30+ }
31+
32+ public function toTelegram ($ notifiable )
33+ {
34+ $ url = route ('articles.show ' , $ this ->article ->slug ());
35+
36+ return TelegramMessage::create ()
37+ ->to (config ('services.telegram-bot-api.channel ' ))
38+ ->content ($ this ->content ())
39+ ->button ('Voir l \'article ' , $ url );
40+ }
41+
42+ private function content (): string
43+ {
44+ $ content = "*Nouvel Article Soumis!* \n\n" ;
45+ $ content .= 'Titre: ' .$ this ->article ->title ."\n" ;
46+ $ content .= 'Par: [@ ' .$ this ->article ->author ->username .']( ' .route ('profile ' , $ this ->article ->author ->username ).') ' ;
47+
48+ return $ content ;
49+ }
50+ }
Load Diff This file was deleted.
Original file line number Diff line number Diff line change 22
33namespace App \Providers ;
44
5+ use App \Events \ArticleWasSubmittedForApproval ;
56use App \Events \CommentWasAdded ;
67use App \Events \ReplyWasCreated ;
78use App \Events \ThreadWasCreated ;
89use App \Listeners \NotifyMentionedUsers ;
910use App \Listeners \PostNewThreadNotification ;
11+ use App \Listeners \SendNewArticleNotification ;
1012use App \Listeners \SendNewCommentNotification ;
1113use App \Listeners \SendNewReplyNotification ;
1214use App \Listeners \SendNewThreadNotification ;
@@ -33,6 +35,9 @@ class EventServiceProvider extends ServiceProvider
3335 SendNewThreadNotification::class,
3436 PostNewThreadNotification::class,
3537 ],
38+ ArticleWasSubmittedForApproval::class => [
39+ SendNewArticleNotification::class,
40+ ],
3641 CommentWasAdded::class => [
3742 SendNewCommentNotification::class,
3843 ],
Original file line number Diff line number Diff line change 4242 'client_id ' => env ('TWITTER_CLIENT_ID ' ),
4343 'client_secret ' => env ('TWITTER_CLIENT_SECRET ' ),
4444 'redirect ' => env ('TWITTER_REDIRECT ' ),
45- 'consumer_key ' => env ('TWITTER_CONSUMER_KEY ' ),
46- 'consumer_secret ' => env ('TWITTER_CONSUMER_SECRET ' ),
45+ 'consumer_key ' => env ('TWITTER_CLIENT_ID ' ),
46+ 'consumer_secret ' => env ('TWITTER_CLIENT_SECRET ' ),
4747 'access_token ' => env ('TWITTER_ACCESS_TOKEN ' ),
4848 'access_secret ' => env ('TWITTER_ACCESS_SECRET ' ),
4949 'scopes ' => [],
5656
5757 'telegram-bot-api ' => [
5858 'token ' => env ('TELEGRAM_BOT_TOKEN ' ),
59+ 'channel ' => env ('TELEGRAM_CHANNEL ' ),
5960 ],
6061
6162];
You can’t perform that action at this time.
0 commit comments