UNPKG

2.82 kBJavaScriptView Raw
1"use strict";
2var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4 return new (P || (P = Promise))(function (resolve, reject) {
5 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7 function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8 step((generator = generator.apply(thisArg, _arguments || [])).next());
9 });
10};
11Object.defineProperty(exports, "__esModule", { value: true });
12exports.NoticebordClient = void 0;
13const services_1 = require("./services");
14const token_service_1 = require("./services/token_service");
15class NoticebordClient {
16 /**
17 * @constructor
18 * @param {string} token Bearer token
19 * @param {string} baseUrl Base URL of the API
20 *
21 * @example
22 * const client = new NoticebordClient("token", "https://noticebord.space/api");
23 * client.fetchNotice(1).then(notice => {
24 * console.log(notice);
25 * });
26 *
27 * client.fetchNotices().then(notices => {
28 * console.table(notices);
29 * });
30 */
31 constructor(token = "", baseUrl = NoticebordClient.defaultBaseUrl) {
32 this.token = token;
33 this.baseUrl = baseUrl;
34 }
35 /**
36 * Gets a bearer token from the API.
37 *
38 * @param {AuthenticateRequest} request The request to authenticate with.
39 * @param {string} baseUrl Base URL of the API
40 *
41 * @example
42 * const token = await NoticebordClient.getToken({
43 * email: "",
44 * password: "",
45 * deviceName: ""
46 * });
47 *
48 * const client = new NoticebordClient(token);
49 *
50 * client.users.fetchCurrentUser().then(user => {
51 * console.log(user);
52 * });
53 */
54 static getToken(request, baseUrl = NoticebordClient.defaultBaseUrl) {
55 return __awaiter(this, void 0, void 0, function* () {
56 return yield token_service_1.TokenService.getToken(baseUrl, request);
57 });
58 }
59 get notices() {
60 return new services_1.NoticeService(this.token, this.baseUrl);
61 }
62 get teams() {
63 return new services_1.TeamService(this.token, this.baseUrl);
64 }
65 get teamNotices() {
66 return new services_1.TeamNoticeService(this.token, this.baseUrl);
67 }
68 get topics() {
69 return new services_1.TopicService(this.token, this.baseUrl);
70 }
71 get users() {
72 return new services_1.UserService(this.token, this.baseUrl);
73 }
74}
75exports.NoticebordClient = NoticebordClient;
76NoticebordClient.defaultBaseUrl = "https://noticebord.space/api";