Skip to content

Commit f31bdfa

Browse files
committed
feat: add subject option in odc-cli
1 parent 09fbb84 commit f31bdfa

1 file changed

Lines changed: 40 additions & 0 deletions

File tree

cli/odc-cli

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,30 @@ class InstrumentRecordsCommands:
382382
print(response)
383383

384384

385+
class SubjectCommands:
386+
@require_url
387+
@require_token
388+
@staticmethod
389+
def delete(id: str) -> None:
390+
url = f'{config.base_url}/v1/subjects/{id}'
391+
response = HttpClient.delete(url)
392+
print(response)
393+
394+
@require_url
395+
@require_token
396+
@staticmethod
397+
def find(min_date: datetime | None, subject_id: str | None) -> None:
398+
url = build_url_with_params(
399+
f'{config.base_url}/v1/subjects',
400+
{
401+
'minDate': min_date,
402+
'subjectId': subject_id,
403+
},
404+
)
405+
response = HttpClient.get(url)
406+
print(response)
407+
408+
385409
class InstrumentsCommands:
386410
@require_url
387411
@require_token
@@ -517,6 +541,22 @@ class CLI:
517541
)
518542
update_parser.set_defaults(fn=InstrumentRecordsCommands.update)
519543

544+
def _create_subjects_parser(self):
545+
subparsers = self._create_subcommand_subparsers('subjects')
546+
547+
delete_parser = subparsers.add_parser('delete', help='delete an subject record by id')
548+
delete_parser.add_argument('--id', required=True, help='id of the subject record to delete')
549+
delete_parser.set_defaults(fn=InstrumentRecordsCommands.delete)
550+
551+
find_parser = subparsers.add_parser('find', help='search subject records by optional filters')
552+
find_parser.add_argument(
553+
'--min-date',
554+
type=ArgumentTypes.valid_datetime,
555+
help='filter records created after this date (format: yyyy-mm-dd or yyyy-mm-dd hh:mm:ss)',
556+
)
557+
find_parser.add_argument('--subject-id', help='filter by subject id')
558+
find_parser.set_defaults(fn=InstrumentRecordsCommands.find)
559+
520560
def _create_instruments_parser(self):
521561
subparsers = self._create_subcommand_subparsers('instruments')
522562
get_parser = subparsers.add_parser('list', help='list all instruments, optionally filtered by kind')

0 commit comments

Comments
 (0)