UNPKG

noticebord-client

Version:

The official Typescript client library for the Noticebord API.

77 lines (76 loc) 2.82 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.NoticebordClient = void 0; const services_1 = require("./services"); const token_service_1 = require("./services/token_service"); class NoticebordClient { /** * @constructor * @param {string} token Bearer token * @param {string} baseUrl Base URL of the API * * @example * const client = new NoticebordClient("token", "https://noticebord.space/api"); * client.fetchNotice(1).then(notice => { * console.log(notice); * }); * * client.fetchNotices().then(notices => { * console.table(notices); * }); */ constructor(token = "", baseUrl = NoticebordClient.defaultBaseUrl) { this.token = token; this.baseUrl = baseUrl; } /** * Gets a bearer token from the API. * * @param {AuthenticateRequest} request The request to authenticate with. * @param {string} baseUrl Base URL of the API * * @example * const token = await NoticebordClient.getToken({ * email: "", * password: "", * deviceName: "" * }); * * const client = new NoticebordClient(token); * * client.users.fetchCurrentUser().then(user => { * console.log(user); * }); */ static getToken(request, baseUrl = NoticebordClient.defaultBaseUrl) { return __awaiter(this, void 0, void 0, function* () { return yield token_service_1.TokenService.getToken(baseUrl, request); }); } get notices() { return new services_1.NoticeService(this.token, this.baseUrl); } get teams() { return new services_1.TeamService(this.token, this.baseUrl); } get teamNotices() { return new services_1.TeamNoticeService(this.token, this.baseUrl); } get topics() { return new services_1.TopicService(this.token, this.baseUrl); } get users() { return new services_1.UserService(this.token, this.baseUrl); } } exports.NoticebordClient = NoticebordClient; NoticebordClient.defaultBaseUrl = "https://noticebord.space/api";