From d23f4318899328da91f87ceb428d1f1222d66cd1 Mon Sep 17 00:00:00 2001 From: Cole Helbling Date: Wed, 28 Apr 2021 12:32:44 -0700 Subject: [PATCH] JobsetInputs: update schema to align with the API `PUT /jobsets/{project-id}/{jobset-id}` expects a JSON object `inputs` which maps a name to a name, a type, a value, and a boolean that enables emailing responsible parties. However, `GET /jobsets/{project-id}/{jobset-id}` responds with an object that doesn't contain a value, but does contain a jobsetinputalts (which is old and should be unused). This commit aligns the two by removing the old and unused `jobsetinputalts` from the response and replaces it with `value`. --- hydra-api.yaml | 8 +++----- src/lib/Hydra/Schema/JobsetInputs.pm | 29 ++++++++++++++-------------- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/hydra-api.yaml b/hydra-api.yaml index 766cfd0b..a0b56822 100644 --- a/hydra-api.yaml +++ b/hydra-api.yaml @@ -589,17 +589,15 @@ components: name: description: name of the input type: string + value: + description: value of the input + type: string type: description: type of input type: string emailresponsible: description: whether or not to email responsible parties type: boolean - jobsetinputalts: - type: array - description: ??? - items: - type: string Jobset: type: object diff --git a/src/lib/Hydra/Schema/JobsetInputs.pm b/src/lib/Hydra/Schema/JobsetInputs.pm index d0d1665d..8ac2a560 100644 --- a/src/lib/Hydra/Schema/JobsetInputs.pm +++ b/src/lib/Hydra/Schema/JobsetInputs.pm @@ -134,21 +134,22 @@ __PACKAGE__->has_many( # Created by DBIx::Class::Schema::Loader v0.07049 @ 2020-02-06 12:22:36 # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:5uKwEhDXso4IR1TFmwRxiA -my %hint = ( - string_columns => [ - "name", - "type" - ], - boolean_columns => [ - "emailresponsible" - ], - relations => { - "jobsetinputalts" => "value" - } -); +sub as_json { + my $self = shift; -sub json_hint { - return \%hint; + my ($input) = $self->jobsetinputalts; + + my %json = ( + # string_columns + "name" => $self->get_column("name") // "", + "type" => $self->get_column("type") // "", + "value" => $input->value // "", + + # boolean_columns + "emailresponsible" => $self->get_column("emailresponsible") ? JSON::true : JSON::false, + ); + + return \%json; } 1;