Get rid of old ToJSON code path

[?]
Oct 24, 2013, 8:17 PM
4OG3W43VYXB3SMGGFGYAJVGN2QFBWP2DQ3AFV2ASW3C2SOCS647QC

Dependencies

  • [2] 4VYSDP4I Add eager fetching of relations and enable that for jobset->jobsetinputs
  • [3] LZVO64YG Merge in the first bits of the API work
  • [4] SYLVCTT6 Start api cleanup with the User model
  • [5] HKKVG34H ToJSON is automatically called recursively

Change contents

  • replacement in src/lib/Hydra/Component/ToJSON.pm at line 12
    [3.1][3.1:73]()
    if ($self->can("json_hint")) {
    my $hint = $self->json_hint;
    [3.1]
    [3.73]
    my $hint = $self->json_hint;
  • replacement in src/lib/Hydra/Component/ToJSON.pm at line 14
    [3.74][3.74:97]()
    my %json = ();
    [3.74]
    [3.97]
    my %json = ();
  • replacement in src/lib/Hydra/Component/ToJSON.pm at line 16
    [3.98][3.98:216]()
    foreach my $column (@{$hint->{columns}}) {
    $json{$column} = $self->get_column($column);
    }
    [3.98]
    [3.216]
    foreach my $column (@{$hint->{columns}}) {
    $json{$column} = $self->get_column($column);
    }
  • replacement in src/lib/Hydra/Component/ToJSON.pm at line 20
    [3.217][3.217:408]()
    foreach my $relname (keys %{$hint->{relations}}) {
    my $key = $hint->{relations}->{$relname};
    $json{$relname} = [ map { $_->$key } $self->$relname ];
    }
    [3.217]
    [3.408]
    foreach my $relname (keys %{$hint->{relations}}) {
    my $key = $hint->{relations}->{$relname};
    $json{$relname} = [ map { $_->$key } $self->$relname ];
    }
  • replacement in src/lib/Hydra/Component/ToJSON.pm at line 25
    [3.409][2.0:209]()
    foreach my $relname (keys %{$hint->{eager_relations}}) {
    my $key = $hint->{eager_relations}->{$relname};
    $json{$relname} = { map { $_->$key => $_ } $self->$relname };
    }
    [3.409]
    [2.209]
    foreach my $relname (keys %{$hint->{eager_relations}}) {
    my $key = $hint->{eager_relations}->{$relname};
    $json{$relname} = { map { $_->$key => $_ } $self->$relname };
    }
  • replacement in src/lib/Hydra/Component/ToJSON.pm at line 30
    [2.210][3.409:1746](),[3.409][3.409:1746](),[3.1746][3.3464:3486](),[3.3464][3.3464:3486](),[3.169][3.3842:3884](),[3.3842][3.3842:3884](),[3.3884][3.1747:1769](),[3.1769][3.3884:3890](),[3.3884][3.3884:3890]()
    return \%json;
    } else {
    my $json = { $self->get_columns };
    my $rs = $self->result_source;
    my @relnames = $rs->relationships;
    RELLOOP: foreach my $relname (@relnames) {
    my $relinfo = $rs->relationship_info($relname);
    next unless defined $relinfo->{attrs}->{accessor};
    my $accessor = $relinfo->{attrs}->{accessor};
    if ($accessor eq "single" and exists $self->{_relationship_data}{$relname}) {
    $json->{$relname} = $self->$relname;
    } else {
    unless (defined $self->{related_resultsets}{$relname}) {
    my $cond = $relinfo->{cond};
    if (ref $cond eq 'HASH') {
    foreach my $k (keys %{$cond}) {
    my $v = $cond->{$k};
    $v =~ s/^self\.//;
    next RELLOOP unless $self->has_column_loaded($v);
    }
    } #!!! TODO: Handle ARRAY conditions
    }
    if (defined $self->related_resultset($relname)->get_cache) {
    if ($accessor eq "multi") {
    $json->{$relname} = [ $self->$relname ];
    } else {
    $json->{$relname} = $self->$relname;
    }
    }
    }
    }
    return $json;
    }
    [2.210]
    [3.3908]
    return \%json;