XetaIO /
Xetaravel
| 1 | <?php |
||||
| 2 | |||||
| 3 | declare(strict_types=1); |
||||
| 4 | |||||
| 5 | namespace Xetaravel\Notifications; |
||||
| 6 | |||||
| 7 | use Illuminate\Bus\Queueable; |
||||
| 8 | use Illuminate\Contracts\Queue\ShouldQueue; |
||||
| 9 | use Illuminate\Notifications\Notification; |
||||
| 10 | use Xetaravel\Models\BlogArticle; |
||||
| 11 | use Xetaravel\Models\BlogComment; |
||||
| 12 | use Xetaravel\Models\DiscussPost; |
||||
| 13 | use Xetaravel\Models\Model; |
||||
| 14 | |||||
| 15 | class MentionNotification extends Notification implements ShouldQueue |
||||
| 16 | { |
||||
| 17 | use Queueable; |
||||
| 18 | |||||
| 19 | /** |
||||
| 20 | * The model instance. |
||||
| 21 | * |
||||
| 22 | * @var Model |
||||
| 23 | */ |
||||
| 24 | public Model $model; |
||||
| 25 | |||||
| 26 | /** |
||||
| 27 | * Create a new notification instance. |
||||
| 28 | * |
||||
| 29 | * @param Model $model |
||||
| 30 | */ |
||||
| 31 | public function __construct(Model $model) |
||||
| 32 | { |
||||
| 33 | $this->model = $model; |
||||
| 34 | } |
||||
| 35 | |||||
| 36 | /** |
||||
| 37 | * Parse the instance of the model and build the array. |
||||
| 38 | * |
||||
| 39 | * @param array $data |
||||
| 40 | * |
||||
| 41 | * @return array |
||||
| 42 | */ |
||||
| 43 | protected function parseInstance(array $data = []): array |
||||
| 44 | { |
||||
| 45 | $model = $this->model; |
||||
| 46 | |||||
| 47 | switch (true) { |
||||
| 48 | case $model instanceof DiscussPost: |
||||
| 49 | $data['message'] = '<strong>@%s</strong> has mentioned your name in his post !'; |
||||
| 50 | $data['link'] = $model->post_url; |
||||
|
0 ignored issues
–
show
|
|||||
| 51 | |||||
| 52 | break; |
||||
| 53 | |||||
| 54 | case $model instanceof BlogComment: |
||||
| 55 | $data['message'] = '<strong>@%s</strong> has mentioned your name in his comment !'; |
||||
| 56 | $data['link'] = $model->comment_url; |
||||
|
0 ignored issues
–
show
|
|||||
| 57 | |||||
| 58 | break; |
||||
| 59 | |||||
| 60 | case $model instanceof BlogArticle: |
||||
| 61 | $data['message'] = '<strong>@%s</strong> has mentioned your name in his article !'; |
||||
| 62 | $data['link'] = $model->show_url; |
||||
|
0 ignored issues
–
show
|
|||||
| 63 | |||||
| 64 | break; |
||||
| 65 | } |
||||
| 66 | $data['message'] = sprintf($data['message'], $model->user->username); |
||||
|
0 ignored issues
–
show
|
|||||
| 67 | |||||
| 68 | return $data; |
||||
| 69 | } |
||||
| 70 | |||||
| 71 | /** |
||||
| 72 | * Get the notification's delivery channels. |
||||
| 73 | * |
||||
| 74 | * @param mixed $notifiable |
||||
| 75 | * |
||||
| 76 | * @return array |
||||
| 77 | */ |
||||
| 78 | public function via(mixed $notifiable): array |
||||
|
0 ignored issues
–
show
The parameter
$notifiable is not used and could be removed.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check looks for parameters that have been defined for a function or method, but which are not used in the method body. Loading history...
|
|||||
| 79 | { |
||||
| 80 | return ['database']; |
||||
| 81 | } |
||||
| 82 | |||||
| 83 | /** |
||||
| 84 | * Get the array representation of the notification. |
||||
| 85 | * |
||||
| 86 | * @param mixed $notifiable |
||||
| 87 | * |
||||
| 88 | * @return array |
||||
| 89 | */ |
||||
| 90 | public function toDatabase(mixed $notifiable): array |
||||
|
0 ignored issues
–
show
The parameter
$notifiable is not used and could be removed.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check looks for parameters that have been defined for a function or method, but which are not used in the method body. Loading history...
|
|||||
| 91 | { |
||||
| 92 | return $this->parseInstance(['type' => 'mention']); |
||||
| 93 | } |
||||
| 94 | } |
||||
| 95 |
Checks if undeclared accessed properties appear in database migrations and if the creating migration is correct.