ThibaudDauce / laravel-notifications-mattermost by ThibaudDauce

Send Laravel Notifications via Mattermost
70,677
17
5
Package Data
Maintainer Username: ThibaudDauce
Maintainer Contact: thibaud@dauce.fr (Thibaud Dauce)
Package Create Date: 2016-08-29
Package Last Update: 2024-04-30
Home Page: https://www.formation-laravel.fr
Language: PHP
License: MIT
Last Refreshed: 2024-11-22 03:08:44
Package Statistics
Total Downloads: 70,677
Monthly Downloads: 3,291
Daily Downloads: 119
Total Stars: 17
Total Watchers: 5
Total Forks: 4
Total Open Issues: 0

Laravel Notifications for Mattermost

Installation

composer require thibaud-dauce/laravel-notifications-mattermost

Creating your webhook URL in Mattermost

Follow the official documentation https://docs.mattermost.com/developer/webhooks-incoming.html.

Usage

<?php

namespace App\Notifications;

use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Notification;
use ThibaudDauce\Mattermost\MattermostChannel;
use ThibaudDauce\Mattermost\Message as MattermostMessage;

class TicketWasOpenedByCustomer extends Notification
{
    use Queueable;

    /**
     * Get the notification's delivery channels.
     *
     * @param  mixed  $notifiable
     * @return array
     */
    public function via($notifiable)
    {
        return [MattermostChannel::class];
    }

    /**
     * Get the Mattermost representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return \ThibaudDauce\Mattermost\Message
     */
    public function toMattermost($notifiable)
    {
        return (new MattermostMessage)
            ->username('Helpdesk')
            ->iconUrl(url('/images/logo_only.png'))
            ->text("A new ticket has been opened.")
            ->attachment(function ($attachment) {
                $attachment->authorName($notifiable->name)
                    ->title("[Ticket #1] Title of the ticket", '/tickets/1')
                    ->text("Message of **the ticket**"); // Markdown supported.
            });
    }
}

For all the possibilities with the Message and the Attachment see https://github.com/ThibaudDauce/mattermost-php.

Routing a message

…

/**
 * Route notifications for the Mattermost channel.
 *
 * @return int
 */
public function routeNotificationForMattermost()
{
    return $this->mattermost_webhook_url;
}

…