UNPKG

firebase-app-distribution

Version:
145 lines 6.18 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 }); const utils_1 = require("./utils"); class Groups { constructor(parent, projectNumber) { this.projectNumber = projectNumber; this.parent = parent; } create({ displayName, groupId = "" }) { return __awaiter(this, void 0, void 0, function* () { const query = groupId !== "" ? `?groupId=${groupId}` : ""; const accessToken = yield this.parent.getAccessToken(); const url = `${(0, utils_1.constructUrl)(this.projectNumber, "groups")}${query}`; const requestBody = JSON.stringify({ displayName, }); const response = yield (0, utils_1.makeRequest)(url, { headers: { authorization: `Bearer ${accessToken}`, }, body: requestBody, method: "POST", }); return response; }); } delete(groupId) { return __awaiter(this, void 0, void 0, function* () { const accessToken = yield this.parent.getAccessToken(); const url = `${(0, utils_1.constructUrl)(this.projectNumber, `groups/${groupId}`)}`; // This response body is an empty object if successfull. // See: https://firebase.google.com/docs/reference/app-distribution/rest/v1/projects.groups/delete#response-body yield (0, utils_1.makeRequest)(url, { headers: { authorization: `Bearer ${accessToken}`, }, body: null, method: "DELETE", }); return 200; }); } get(groupId) { return __awaiter(this, void 0, void 0, function* () { const accessToken = yield this.parent.getAccessToken(); const url = `${(0, utils_1.constructUrl)(this.projectNumber, `groups/${groupId}`)}`; try { const response = yield (0, utils_1.makeRequest)(url, { headers: { authorization: `Bearer ${accessToken}`, }, body: null, method: "GET", }); return response; } catch (_) { return null; } }); } list({ pageSize = 25, maxPages = 10 } = {}) { return __awaiter(this, void 0, void 0, function* () { const accessToken = yield this.parent.getAccessToken(); let groupList = []; let query = `?pageSize=${pageSize}`; let nextPageToken = ""; for (let page = 0; page < maxPages; page++) { nextPageToken = nextPageToken !== "" ? `&pageToken=${encodeURIComponent(nextPageToken)}` : ""; const url = `${(0, utils_1.constructUrl)(this.projectNumber, "groups")}${query}${nextPageToken}`; const response = yield (0, utils_1.makeRequest)(url, { headers: { authorization: `Bearer ${accessToken}`, }, body: null, method: "GET", }); if (response.groups === undefined) { break; } groupList.push(...response.groups); if (response.nextPageToken !== undefined) { nextPageToken = response.nextPageToken; } else { break; } } return groupList; }); } removeTesters({ groupId, emails, }) { return __awaiter(this, void 0, void 0, function* () { const accessToken = yield this.parent.getAccessToken(); const url = (0, utils_1.constructUrl)(this.projectNumber, `groups/${groupId}:batchLeave`); const reuqestBody = JSON.stringify({ emails, }); // This response body is an empty object if successfull. // See: https://firebase.google.com/docs/reference/app-distribution/rest/v1/projects.groups/batchLeave#response-body yield (0, utils_1.makeRequest)(url, { headers: { authorization: `Bearer ${accessToken}`, }, body: reuqestBody, method: "POST", }); return 200; }); } addTesters({ groupId, emails }) { return __awaiter(this, void 0, void 0, function* () { const accessToken = yield this.parent.getAccessToken(); const url = (0, utils_1.constructUrl)(this.projectNumber, `groups/${groupId}:batchJoin`); const reuqestBody = JSON.stringify({ emails, createMissingTesters: true, }); // This response body is an empty object if successfull. // See: https://firebase.google.com/docs/reference/app-distribution/rest/v1/projects.groups/batchJoin#response-body yield (0, utils_1.makeRequest)(url, { headers: { authorization: `Bearer ${accessToken}`, }, body: reuqestBody, method: "POST", }); return 200; }); } } exports.default = Groups; //# sourceMappingURL=groups.js.map