UNPKG

firebase-app-distribution

Version:
108 lines 4.78 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 Testers { constructor(parent, projectNumber) { this.parent = parent; this.projectNumber = projectNumber; } add(emails) { return __awaiter(this, void 0, void 0, function* () { const accessToken = yield this.parent.getAccessToken(); const url = (0, utils_1.constructUrl)(this.projectNumber, "testers:batchAdd"); const requestBody = JSON.stringify({ emails, }); const response = yield (0, utils_1.makeRequest)(url, { headers: { authorization: `Bearer ${accessToken}`, }, body: requestBody, method: "POST", }); return response.testers || []; }); } remove(emails) { return __awaiter(this, void 0, void 0, function* () { const accessToken = yield this.parent.getAccessToken(); const url = (0, utils_1.constructUrl)(this.projectNumber, "testers:batchRemove"); const requestBody = JSON.stringify({ emails, }); const response = yield (0, utils_1.makeRequest)(url, { headers: { authorization: `Bearer ${accessToken}`, }, body: requestBody, method: "POST", }); return response.emails || []; }); } list({ pageSize = 50, email = "", displayName = "", groups = "", maxPages = 10, } = {}) { return __awaiter(this, void 0, void 0, function* () { const accessToken = yield this.parent.getAccessToken(); let testerList = []; let filter = ""; let query = `?pageSize=${pageSize}`; let nextPageToken = ""; filter += email !== "" ? `name="projects/-/testers/${email}"` : ""; filter += displayName !== "" ? `displayName="${displayName}"` : ""; filter += groups !== "" ? `groups="projects/*/groups/${groups}"` : ""; filter = filter !== "" ? `&filter=${encodeURIComponent(filter)}` : ""; for (let page = 0; page < maxPages; page++) { nextPageToken = nextPageToken !== "" ? `&pageToken=${encodeURIComponent(nextPageToken)}` : ""; const url = `${(0, utils_1.constructUrl)(this.projectNumber, "testers")}${query}${nextPageToken}${filter}`; const response = yield (0, utils_1.makeRequest)(url, { headers: { authorization: `Bearer ${accessToken}`, }, body: null, method: "GET", }); if (response.testers === undefined) { break; } testerList.push(...response.testers); if (response.nextPageToken !== undefined) { nextPageToken = response.nextPageToken; } else { break; } } return testerList; }); } get(email) { return __awaiter(this, void 0, void 0, function* () { const accessToken = yield this.parent.getAccessToken(); let query = `?pageSize=1`; const filter = `&filter=${encodeURIComponent(`name="projects/-/testers/${email}"`)}`; const url = `${(0, utils_1.constructUrl)(this.projectNumber, "testers")}${query}${filter}`; const response = yield (0, utils_1.makeRequest)(url, { headers: { authorization: `Bearer ${accessToken}`, }, body: null, method: "GET", }); return response.testers !== undefined ? response.testers[0] : null; }); } } exports.default = Testers; //# sourceMappingURL=testers.js.map