@rcsb/rcsb-saguaro-app
Version:
RCSB 1D Saguaro Web App
26 lines (25 loc) • 1.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.GroupMemberCollector = void 0;
const tslib_1 = require("tslib");
const RcsbClient_1 = require("../../RcsbGraphQL/RcsbClient");
const MultipleEntityInstancesCollector_1 = require("./MultipleEntityInstancesCollector");
class GroupMemberCollector {
constructor() {
this.rcsbFvQuery = RcsbClient_1.rcsbClient;
}
collect(requestConfig) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
const result = yield this.rcsbFvQuery.requestGroupInfo(requestConfig);
if (result.rcsb_group_info.group_members_granularity === "polymer_entity") {
const multipleEntityInstancesCollector = new MultipleEntityInstancesCollector_1.MultipleEntityInstancesCollector();
return yield multipleEntityInstancesCollector.collect({ entity_ids: result.rcsb_group_container_identifiers.group_member_ids.filter((x) => x != null) });
}
else {
console.error(`Group granularity ${result.rcsb_group_info.group_members_granularity} not supported`);
throw new Error(`Group granularity ${result.rcsb_group_info.group_members_granularity} not supported`);
}
});
}
}
exports.GroupMemberCollector = GroupMemberCollector;