From a739c93cd2bdcc064d2424c0d4949d6647ea1376 Mon Sep 17 00:00:00 2001 From: ousid Date: Sun, 25 Dec 2022 11:35:06 +0100 Subject: [PATCH 1/3] add user relationship into messages model --- config/laravel_ticket.php | 1 + .../migrations/create_messages_table.php.stub | 2 +- src/Models/Message.php | 15 +++++++++++++++ tests/Feature/MessageTest.php | 13 +++++++++++++ 4 files changed, 30 insertions(+), 1 deletion(-) diff --git a/config/laravel_ticket.php b/config/laravel_ticket.php index cc63408..4f5c6ac 100644 --- a/config/laravel_ticket.php +++ b/config/laravel_ticket.php @@ -39,6 +39,7 @@ * @see https://laravel.com/docs/9.x/eloquent-relationships#one-to-many */ 'columns' => [ + 'user_foreing_id' => 'user_id', 'ticket_foreing_id' => 'ticket_id', ], ], diff --git a/database/migrations/create_messages_table.php.stub b/database/migrations/create_messages_table.php.stub index 51a1907..0a75417 100644 --- a/database/migrations/create_messages_table.php.stub +++ b/database/migrations/create_messages_table.php.stub @@ -15,7 +15,7 @@ return new class extends Migration Schema::create($tableName['table'], function (Blueprint $table) use ($tableName) { $table->id(); - $table->foreignId('user_id'); + $table->foreignId($tableName['columns']['user_foreing_id']); $table->foreignId($tableName['columns']['ticket_foreing_id']); $table->text('message'); $table->timestamps(); diff --git a/src/Models/Message.php b/src/Models/Message.php index c6a0989..3056c68 100644 --- a/src/Models/Message.php +++ b/src/Models/Message.php @@ -38,6 +38,21 @@ public function ticket(): BelongsTo ); } + /** + * Get Message Relationship + * + * @return \Illuminate\Database\Eloquent\Relations\BelongsTo + */ + public function user(): BelongsTo + { + $tableName = config('laravel_ticket.table_names.messages', 'message'); + + return $this->belongsTo( + config('auth.providers.users.model'), + $tableName['columns']['user_foreing_id'] + ); + } + /** * Get the table associated with the model. * diff --git a/tests/Feature/MessageTest.php b/tests/Feature/MessageTest.php index 22ab8f5..8969dfd 100644 --- a/tests/Feature/MessageTest.php +++ b/tests/Feature/MessageTest.php @@ -2,6 +2,7 @@ use Coderflex\LaravelTicket\Models\Message; use Coderflex\LaravelTicket\Models\Ticket; +use Coderflex\LaravelTicket\Tests\Models\User; it('can attach message to a ticket', function () { $message = Message::factory()->create(); @@ -13,3 +14,15 @@ $this->assertEquals($message->ticket->title, 'Can you create a message?'); }); + +it('message can be associated to a user', function () { + $user = User::factory()->create([ + 'name' => 'Oussama', + ]); + + $message = Message::factory()->create(); + + $message->user()->associate($user); + + $this->assertEquals($message->user->name, 'Oussama'); +}); From 76bfd6d3b1c47d1095ea96970a0a34a3220ab203 Mon Sep 17 00:00:00 2001 From: ousid Date: Sun, 25 Dec 2022 10:35:44 +0000 Subject: [PATCH 2/3] Fix styling --- src/Models/Message.php | 2 +- tests/Feature/MessageTest.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Models/Message.php b/src/Models/Message.php index 3056c68..fc78b62 100644 --- a/src/Models/Message.php +++ b/src/Models/Message.php @@ -40,7 +40,7 @@ public function ticket(): BelongsTo /** * Get Message Relationship - * + * * @return \Illuminate\Database\Eloquent\Relations\BelongsTo */ public function user(): BelongsTo diff --git a/tests/Feature/MessageTest.php b/tests/Feature/MessageTest.php index 8969dfd..c94b7c6 100644 --- a/tests/Feature/MessageTest.php +++ b/tests/Feature/MessageTest.php @@ -19,7 +19,7 @@ $user = User::factory()->create([ 'name' => 'Oussama', ]); - + $message = Message::factory()->create(); $message->user()->associate($user); From ca1ad418b3c90c9b4c03ecd1099dfc268df83e6e Mon Sep 17 00:00:00 2001 From: ousid Date: Sun, 25 Dec 2022 11:42:07 +0100 Subject: [PATCH 3/3] fix styling --- src/Models/Message.php | 2 +- tests/Feature/MessageTest.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Models/Message.php b/src/Models/Message.php index 3056c68..fc78b62 100644 --- a/src/Models/Message.php +++ b/src/Models/Message.php @@ -40,7 +40,7 @@ public function ticket(): BelongsTo /** * Get Message Relationship - * + * * @return \Illuminate\Database\Eloquent\Relations\BelongsTo */ public function user(): BelongsTo diff --git a/tests/Feature/MessageTest.php b/tests/Feature/MessageTest.php index 8969dfd..c94b7c6 100644 --- a/tests/Feature/MessageTest.php +++ b/tests/Feature/MessageTest.php @@ -19,7 +19,7 @@ $user = User::factory()->create([ 'name' => 'Oussama', ]); - + $message = Message::factory()->create(); $message->user()->associate($user);