UNPKG

@lifeomic/cli

Version:

CLI for interacting with the LifeOmic PHC API.

71 lines (67 loc) 2.2 kB
'use strict'; const { post, list } = require('../../ga4gh'); const print = require('../../print'); const genomicFilter = require('../../genomic-filter'); exports.command = 'list-readgroup-sets <datasetId>'; exports.desc = 'List readgroup sets by dataset <datasetId>.'; exports.builder = yargs => { yargs.positional('datasetId', { describe: 'The dataset id.', type: 'string' }).option('page-size', { describe: 'Page size, limit max of 1000', type: 'number', alias: 'n', default: 25 }).option('limit', { describe: 'The maximum number of items to return, will override page size', alias: 'l', type: 'number' }).option('next-page-token', { describe: 'Next page token', alias: 't', type: 'string' }).option('missing-patient', { describe: 'Only return records missing patientIds', type: 'Boolean', default: false, demandOption: false }).option('missing-sequence', { describe: 'Only return records missing sequenceIds', type: 'Boolean', default: false, demandOption: false }).option('missing-samples', { describe: 'Only return records missing sample names', type: 'Boolean', default: false, demandOption: false }).option('missing-fhir-sequence', { describe: 'Only return records missing fhir sequences', type: 'Boolean', default: false, demandOption: false }).option('only-ids', { describe: 'Only returns the ids of the records, useful for generating data sources for scripts', type: 'Boolean', default: false, demandOption: false }); }; exports.handler = async argv => { if (argv.limit) { const response = await list(argv, `/readgroupsets/search`, { datasetIds: [argv.datasetId] }, 'readGroupSets'); response.readGroupSets = await genomicFilter(response.readGroupSets, argv); print(response.readGroupSets, argv); } else { const response = await post(argv, `/readgroupsets/search`, { datasetIds: [argv.datasetId], pageSize: argv.pageSize, pageToken: argv.nextPageToken }); response.data.readGroupSets = await genomicFilter(response.data.readGroupSets, argv); print(response.data, argv); } };