firebase-app-distribution
Version:
A library that uses Firebase App Distribution APIs.
108 lines • 4.78 kB
JavaScript
;
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