typerinth
Version:
A TypeScript library for interacting with the Modrinth API.
41 lines (40 loc) • 1.58 kB
JavaScript
;
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;