From d825605a99ab8e69d31ca242ed2cd1ba98605166 Mon Sep 17 00:00:00 2001 From: Michal Feher Date: Thu, 30 Mar 2023 09:35:26 +0200 Subject: [PATCH 1/3] email notifications --- be/app/Events/SubTaskCreated.php | 39 ++++++++++++ be/app/Http/Controllers/SubTaskController.php | 1 + .../SendNewTaskEmailNotification.php | 34 ++++++++++ be/app/Mail/NewTask.php | 62 +++++++++++++++++++ be/app/Observers/SubTaskObserver.php | 3 +- be/app/Providers/EventServiceProvider.php | 6 ++ .../2023_03_29_111816_create_jobs_table.php | 36 +++++++++++ .../emails/task/new_task_created.blade.php | 1 + 8 files changed, 181 insertions(+), 1 deletion(-) create mode 100644 be/app/Events/SubTaskCreated.php create mode 100644 be/app/Listeners/SendNewTaskEmailNotification.php create mode 100644 be/app/Mail/NewTask.php create mode 100644 be/database/migrations/2023_03_29_111816_create_jobs_table.php create mode 100644 be/resources/views/emails/task/new_task_created.blade.php diff --git a/be/app/Events/SubTaskCreated.php b/be/app/Events/SubTaskCreated.php new file mode 100644 index 0000000..e5a1996 --- /dev/null +++ b/be/app/Events/SubTaskCreated.php @@ -0,0 +1,39 @@ +subtask = $subtask; + } + + /** + * Get the channels the event should broadcast on. + * + * @return \Illuminate\Broadcasting\Channel|array + */ + public function broadcastOn() + { + return new PrivateChannel('channel-name'); + } +} diff --git a/be/app/Http/Controllers/SubTaskController.php b/be/app/Http/Controllers/SubTaskController.php index db3286c..db981e5 100644 --- a/be/app/Http/Controllers/SubTaskController.php +++ b/be/app/Http/Controllers/SubTaskController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\Events\SubTaskCreated; use App\Http\Resources\BlockerResource; use App\Http\Resources\SubTaskResource; use App\Models\Attachment; diff --git a/be/app/Listeners/SendNewTaskEmailNotification.php b/be/app/Listeners/SendNewTaskEmailNotification.php new file mode 100644 index 0000000..858d983 --- /dev/null +++ b/be/app/Listeners/SendNewTaskEmailNotification.php @@ -0,0 +1,34 @@ +subtask->user->email )->send( new NewTask( $event->subtask ) ); + } +} diff --git a/be/app/Mail/NewTask.php b/be/app/Mail/NewTask.php new file mode 100644 index 0000000..0bf04a0 --- /dev/null +++ b/be/app/Mail/NewTask.php @@ -0,0 +1,62 @@ +subtask = $subtask; + } + + /** + * Get the message envelope. + * + * @return \Illuminate\Mail\Mailables\Envelope + */ + public function envelope() + { + return new Envelope( + subject: 'New Task', + ); + } + + /** + * Get the message content definition. + * + * @return \Illuminate\Mail\Mailables\Content + */ + public function content() + { + return new Content( + view: 'emails.task.new_task_created', + ); + } + + /** + * Get the attachments for the message. + * + * @return array + */ + public function attachments() + { + return []; + } +} diff --git a/be/app/Observers/SubTaskObserver.php b/be/app/Observers/SubTaskObserver.php index 777158f..9c84ff0 100644 --- a/be/app/Observers/SubTaskObserver.php +++ b/be/app/Observers/SubTaskObserver.php @@ -2,6 +2,7 @@ namespace App\Observers; +use App\Events\SubTaskCreated; use App\Models\SubTask; class SubTaskObserver @@ -14,7 +15,7 @@ class SubTaskObserver */ public function created(SubTask $subTask) { - // + SubTaskCreated::dispatch($subTask); } public function updating(SubTask $subTask) diff --git a/be/app/Providers/EventServiceProvider.php b/be/app/Providers/EventServiceProvider.php index 20240b3..3168eb8 100644 --- a/be/app/Providers/EventServiceProvider.php +++ b/be/app/Providers/EventServiceProvider.php @@ -2,6 +2,8 @@ namespace App\Providers; +use App\Events\SubTaskCreated; +use App\Listeners\SendNewTaskEmailNotification; use App\Models\MasterTask; use App\Models\SubTask; use App\Observers\MasterTaskObserver; @@ -22,6 +24,10 @@ class EventServiceProvider extends ServiceProvider Registered::class => [ SendEmailVerificationNotification::class, ], + SubTaskCreated::class => [ + SendNewTaskEmailNotification::class, + //LogEvent::class, + ], ]; /** diff --git a/be/database/migrations/2023_03_29_111816_create_jobs_table.php b/be/database/migrations/2023_03_29_111816_create_jobs_table.php new file mode 100644 index 0000000..a786a89 --- /dev/null +++ b/be/database/migrations/2023_03_29_111816_create_jobs_table.php @@ -0,0 +1,36 @@ +bigIncrements('id'); + $table->string('queue')->index(); + $table->longText('payload'); + $table->unsignedTinyInteger('attempts'); + $table->unsignedInteger('reserved_at')->nullable(); + $table->unsignedInteger('available_at'); + $table->unsignedInteger('created_at'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('jobs'); + } +}; diff --git a/be/resources/views/emails/task/new_task_created.blade.php b/be/resources/views/emails/task/new_task_created.blade.php new file mode 100644 index 0000000..dd2f5c3 --- /dev/null +++ b/be/resources/views/emails/task/new_task_created.blade.php @@ -0,0 +1 @@ +New task created: {{ $subtask->mastertask->title }} From 2b0e90abca560cf34484ca0fef2a5a5eab44a8a0 Mon Sep 17 00:00:00 2001 From: Michal Feher Date: Thu, 30 Mar 2023 10:47:15 +0200 Subject: [PATCH 2/3] no message --- be/app/Http/Controllers/UserController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/be/app/Http/Controllers/UserController.php b/be/app/Http/Controllers/UserController.php index edfe616..9f61f7a 100644 --- a/be/app/Http/Controllers/UserController.php +++ b/be/app/Http/Controllers/UserController.php @@ -44,7 +44,7 @@ class UserController extends Controller { $token = $user->createToken( 'password-reset', [ 'password-reset' ] )->plainTextToken; $url = env( 'APP_URL_FE' ) . '#/auth/reset-password?token=' . $token . '&email=' . $user->email; - Mail::to( 'michal.feher@gmail.com' )->send( new PasswordReset( $url ) ); + Mail::to( $user->email )->send( new PasswordReset( $url ) ); return [ 'message' => 'Email sent.' ]; } From 8b8ddc6502c488694f08ef1cb7a79b94c808308b Mon Sep 17 00:00:00 2001 From: Michal Feher Date: Thu, 30 Mar 2023 10:57:36 +0200 Subject: [PATCH 3/3] no message --- be/app/Http/Controllers/UserController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/be/app/Http/Controllers/UserController.php b/be/app/Http/Controllers/UserController.php index 9f61f7a..690e8c1 100644 --- a/be/app/Http/Controllers/UserController.php +++ b/be/app/Http/Controllers/UserController.php @@ -42,7 +42,7 @@ class UserController extends Controller { } $token = $user->createToken( 'password-reset', [ 'password-reset' ] )->plainTextToken; - $url = env( 'APP_URL_FE' ) . '#/auth/reset-password?token=' . $token . '&email=' . $user->email; + $url = env( 'APP_URL_FE' ) . '/#/auth/reset-password?token=' . $token . '&email=' . $user->email; Mail::to( $user->email )->send( new PasswordReset( $url ) );