UNPKG

firebase-app-distribution

Version:
187 lines (185 loc) 5.9 kB
import { APP_DISTRIBUTION_ENDPOINT, ENDPOINT_VERSION, __async, __spreadProps, __spreadValues, makeRequest } from "./chunk-PTPJZ7KZ.mjs"; // src/groups.ts function getGroupIdFromName(groupName) { return groupName.split("/").pop(); } var Groups = class { constructor(parent) { this.parent = parent; } create(displayName, groupId) { return __async(this, null, function* () { const accessToken = yield this.parent.getAccessToken(); const projectNumber = yield this.parent.getProjectNumber(); const url = new URL( `${APP_DISTRIBUTION_ENDPOINT}/${ENDPOINT_VERSION}/projects/${projectNumber}/groups` ); if (groupId) { url.searchParams.set("groupId", groupId); } const requestBody = JSON.stringify({ displayName }); const response = yield makeRequest(url, { headers: { authorization: `Bearer ${accessToken}` }, body: requestBody, method: "POST" }); return __spreadProps(__spreadValues({}, response), { id: getGroupIdFromName(response.name) }); }); } delete(groupId) { return __async(this, null, function* () { const accessToken = yield this.parent.getAccessToken(); const projectNumber = yield this.parent.getProjectNumber(); const url = new URL( `${APP_DISTRIBUTION_ENDPOINT}/${ENDPOINT_VERSION}/projects/${projectNumber}/groups/${groupId}` ); const response = yield makeRequest(url, { headers: { authorization: `Bearer ${accessToken}` }, body: null, method: "DELETE" }); return response; }); } get(groupId) { return __async(this, null, function* () { const accessToken = yield this.parent.getAccessToken(); const projectNumber = yield this.parent.getProjectNumber(); const url = new URL( `${APP_DISTRIBUTION_ENDPOINT}/${ENDPOINT_VERSION}/projects/${projectNumber}/groups/${groupId}` ); const response = yield makeRequest(url, { headers: { authorization: `Bearer ${accessToken}` }, body: null, method: "GET" }); if (response.name === void 0) { return null; } return __spreadProps(__spreadValues({}, response), { id: getGroupIdFromName(response.name) }); }); } list() { return __async(this, arguments, function* ({ pageSize = 25, maxPages = 10 } = {}) { const accessToken = yield this.parent.getAccessToken(); const projectNumber = yield this.parent.getProjectNumber(); const groupList = []; const url = new URL( `${APP_DISTRIBUTION_ENDPOINT}/${ENDPOINT_VERSION}/projects/${projectNumber}/groups` ); url.searchParams.set("pageSize", pageSize.toString()); let nextPageToken = ""; for (let page = 0; page < maxPages; page++) { if (nextPageToken) { url.searchParams.set("pageToken", nextPageToken); } else { url.searchParams.delete("pageToken"); } const response = yield makeRequest(url, { headers: { authorization: `Bearer ${accessToken}` }, body: null, method: "GET" }); if (response.groups === void 0) { break; } for (let group of response.groups) { groupList.push(__spreadProps(__spreadValues({}, group), { id: getGroupIdFromName(group.name) })); } if (response.nextPageToken !== void 0) { nextPageToken = response.nextPageToken; } else { break; } } return groupList; }); } update(_0, _1) { return __async(this, arguments, function* (groupId, { displayName }) { const accessToken = yield this.parent.getAccessToken(); const projectNumber = yield this.parent.getProjectNumber(); const url = new URL( `${APP_DISTRIBUTION_ENDPOINT}/${ENDPOINT_VERSION}/projects/${projectNumber}/groups/${groupId}` ); if (displayName) { url.searchParams.set("updateMask", "displayName"); } const requestBody = JSON.stringify({ displayName }); const response = yield makeRequest(url, { headers: { authorization: `Bearer ${accessToken}` }, body: requestBody, method: "PATCH" }); return __spreadProps(__spreadValues({}, response), { id: getGroupIdFromName(response.name) }); }); } removeTesters(groupId, emails) { return __async(this, null, function* () { const accessToken = yield this.parent.getAccessToken(); const projectNumber = yield this.parent.getProjectNumber(); const url = new URL( `${APP_DISTRIBUTION_ENDPOINT}/${ENDPOINT_VERSION}/projects/${projectNumber}/groups/${groupId}:batchLeave` ); const reuqestBody = JSON.stringify({ emails }); const response = yield makeRequest(url, { headers: { authorization: `Bearer ${accessToken}` }, body: reuqestBody, method: "POST" }); return response; }); } addTesters(groupId, emails) { return __async(this, null, function* () { const accessToken = yield this.parent.getAccessToken(); const projectNumber = yield this.parent.getProjectNumber(); const url = new URL( `${APP_DISTRIBUTION_ENDPOINT}/${ENDPOINT_VERSION}/projects/${projectNumber}/groups/${groupId}:batchJoin` ); const reuqestBody = JSON.stringify({ emails, createMissingTesters: true }); const response = yield makeRequest(url, { headers: { authorization: `Bearer ${accessToken}` }, body: reuqestBody, method: "POST" }); return response; }); } }; export { Groups }; //# sourceMappingURL=chunk-2OREYMMB.mjs.map