UNPKG

typerinth

Version:

A TypeScript library for interacting with the Modrinth API.

41 lines (40 loc) 1.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const Route_1 = require("../Route"); const errors_1 = require("../../errors"); const TeamMemberPermissions_1 = require("../../enums/TeamMemberPermissions"); class GetMultipleTeamsMembers extends Route_1.Route { teamIds; constructor(baseUrl, ua, cacheManager, authorization, teamIds) { super(baseUrl, ua, cacheManager, authorization); this.teamIds = teamIds; } getCacheKey() { return `teams:${this.teamIds.join(',')}:members`; } getUrl() { const url = Route_1.Route.addPathSegment(this.baseUrl, `/teams`); url.searchParams.append('ids', `[${this.teamIds.map((id) => `"${id}"`).join(', ')}]`); return url; } parseData(data) { if (data === null || data === undefined) throw new errors_1.UnexpectedApiError('Unexpected empty response'); if (data.error) { throw new errors_1.ApiError(data.error, data.description); } return data.map((team) => team.map((member) => ({ team_id: member.team_id, user: member.user, role: member.role, permissions: member.permissions !== null ? (0, TeamMemberPermissions_1.bitfieldToArray)(member.permissions) : null, permissions_bitfield: member.permissions, accepted: member.accepted, payouts_split: member.payouts_split, ordering: member.ordering, }))); } } exports.default = GetMultipleTeamsMembers;