Skip to content
On this page

Mattermost

swaggercodecovphpunitdownloadsdownloadsdownloadsMaintainabilityTest Coverage

What does it do

This package is used for Mattermost integration.

It listens for Events then add/remove user for mattermost and particular channels either as standard user or admin.

Installing

  • composer require escolalms/mattermost

Example

You can configure the package using Facade

Config::set('mattermost.package_status', PackageStatusEnum::ENABLED);
Config::set('mattermost.servers.default.host', 'localhost');
Config::set('mattermost.servers.default.login', 'login');
Config::set('mattermost.servers.default.password', 'password');

or /api/admin/config endpoint

php
$this->actingAs($this->user, 'api')->json(
    'POST',
    '/api/admin/config',
    [
        'config' => [
            [
                'key' => 'mattermost.package_status',
                'value' => PackageStatusEnum::ENABLED,
            ],
            [
                'key' => 'mattermost.servers.default.host',
                'value' => 'localhost',
            ],
            [
                'key' => 'mattermost.servers.default.login',
                'value' => 'login',
            ],
            [
                'key' => 'mattermost.servers.default.password',
                'value' => 'password',
            ],
        ]
    ]
);

Endpoints

All the endpoints are defined in swagger

Test

Run ./vendor/bin/phpunit to run tests. See tests folder as it's quite good staring point as documentation appendix. Test details codecovphpunit

Listeners

Handling events

  • EscolaLms\Auth\Events\AccountConfirmed => add user to Mattermost
  • EscolaLms\Auth\Events\AccountDeleted => remove user from Mattermost
  • EscolaLms\Auth\Events\AccountBlocked => block user account
  • EscolaLms\Courses\Events\CourseAssigned => add user to course channel with member role
  • EscolaLms\Courses\Events\CourseUnassigned => remove user from course channel
  • EscolaLms\Courses\Events\CourseTutorAssigned => add user to course channel with channel_admin role
  • EscolaLms\Courses\Events\CourseTutorUnassigned => remove user from course channel
  • EscolaLms\Webinar\Events\WebinarUserAssigned => add user to webinar channel with member role
  • EscolaLms\Webinar\Events\WebinarUserUnassigned => remove user from webinar channel
  • EscolaLms\Webinar\Events\WebinarTrainerAssigned => add user to webinar channel with channel_admin role
  • EscolaLms\Webinar\Events\WebinarTrainerUnassigned => remove user from webinar channel