* Add GetInstallation function, allow IP Filtering page to fetch installation state, other fixes for IP filter feature * Fix pipelines * Run make build-templates * Fixing i18n * Fix openapi docs * Fix openapi docs again * make build-templates * Update test to ensure that spinner is removed after installation becomes stable * Fix types, style * update openapi because I can't validate locally... * Updates according to Matt's feedback * Add a limit to number of times installation is requested before an error is displayed * Make button disable immediately * Updates based on PR feedback * A couple missed occurrences of whitespace * Grammar fix in failed to fetch error --------- Co-authored-by: Gabe Jackson <3694686+gabrieljackson@users.noreply.github.com> Co-authored-by: Mattermost Build <build@mattermost.com>
Mattermost Client
This package contains the JavaScript/TypeScript client for Mattermost. It's used by the Mattermost web app and related projects.
Installation
JavaScript
$ npm install @mattermost/client
TypeScript
$ npm install @mattermost/client @mattermost/types
Usage
To use the client, create an instance of Client4, set the server URL, and log in, and then you can start making requests.
import {Client4} from '@mattermost/client';
const client = new Client4();
client4.setUrl('https://mymattermostserver.example.com');
client4.login('username', 'password').then((user) => {
// ...
});
If you already have a session token or a user access token, you can call Client4.setToken instead of logging in.
import {Client4} from '@mattermost/client';
const client = new Client4();
client4.setUrl('https://mymattermostserver.example.com');
client4.setToken('accesstoken');
If needed, methods exist to set other headers such as the User-Agent (Client4.setUserAgent), the CSRF token (Client4.setCSRF), or any extra headers you wish to include (Client4.setHeader).
Methods of Client4 which make requests to the server return a Promise which does the following:
- On success, the promise resolves to a
ClientResponse<T>object which contains the the Response (response), a Map of headers (headers), and the data sent from the server (data). - On an error, the promise rejects with a
ClientErrorwhich contains the error message and the URL being requested. If the error happened on the server, the status code and an error ID (server_error_id) are included.
let user;
try {
user = (await client.getUser('userid')).data;
} catch (e) {
console.error(`An error occurred when making a request to ${e.url}: ${e.message}`);
}
Compilation and Packaging
As a member of Mattermost with write access to our NPM organization, you can build and publish this package by running the following commands:
npm run build --workspace=platform/client
npm publish --workspace=platform/client
Make sure to increment the version number in package.json first! You can add -0, -1, etc for pre-release versions.