local_webhooks/docs/getting-started.md

111 lines
2.9 KiB
Markdown

# Getting Started
## Navigation
* [Installation](#installation)
* [Build](#build)
* [User guide](#user-guide)
* [Guide to the manager](#guide-to-the-manager)
* [Guide to the editor](#guide-to-the-editor)
* [Request format](#request-format)
## Installation
Get the installation package in any of the available methods:
* [GitHub Releases](https://github.com/valentineus/moodle-webhooks/releases).
* [Compilation from the source code](#build).
### Build
Self-assembly package is as follows:
* Clone the repository:
```bash
git clone https://github.com/valentineus/moodle-webhooks.git moodle-webhooks
```
* Run the build script:
```bash
cd ./moodle-webhooks
/bin/sh build.sh
```
## User guide
After you install the plug-in, the Service Manager appears on the `Server` tab in the administration panel.
To open the page, go:
`Site administration` ->
`Server` ->
`WebHooks`.
### Guide to the manager
The main window looks like this:
![Service Manager](screenshots/managerservice.jpg)
On the main page you can see the list of services and manage each service separately.
Column description
* "**Name**" shows the name of the service.
* "**URL**" indicates the address of the service to which notifications are received.
* "**Actions**" allows you to enable / disable the service, edit and delete.
Description of control buttons:
* "**Add service**" opens a page for creating a new service.
* "**Backup**" loads the backup file of the service list.
* "**Restore**" redirects the data recovery page from the backup.
### Guide to the editor
During the editing and creation of the service, this page opens:
![Service Editor](screenshots/editservice.jpg)
Description of fields:
* "**Name**" stores an arbitrary name for the service.
* "**URL**" stores the address of the service to which notifications will be sent as a POST request.
* "**Token**" allows you to specify an individual key that will allow an external service to identify requests.
* "**Advanced**" stores a large string passed to the service.
This can be useful for some services or users.
* "**Content Type**" allows you to configure the type of outbound requests if there are compatibility issues.
The "**All events**" list contains a list of all events registered in the system.
The selected events will notify the service.
## Request format
Events come in
[JSON](https://en.wikipedia.org/wiki/JSON)
format.
An example of an observed course event:
```JSON
{
"eventname": "\\core\\event\\course_viewed",
"component": "core",
"action": "viewed",
"target": "course",
"objecttable": null,
"objectid": null,
"crud": "r",
"edulevel": 2,
"contextid": 2,
"contextlevel": 50,
"contextinstanceid": "1",
"userid": "2",
"courseid": "1",
"relateduserid": null,
"anonymous": 0,
"other": null,
"timecreated": 1512961456,
"host": "localhost",
"token": "",
"extra": ""
}
```
[Detailed description of the fields](https://docs.moodle.org/dev/Event_2#Properties).