e6a87764a2956b0360f507a9ab773626a7e58bb3
[arvados.git] / sdk / perl / lib / Arvados / ResourceProxy.pm
1 package Arvados::ResourceProxy;
2
3 sub new
4 {
5     my $class = shift;
6     my $self = shift;
7     $self->{'resourceAccessor'} = shift;
8     bless ($self, $class);
9     $self;
10 }
11
12 sub save
13 {
14     my $self = shift;
15     $response = $self->{'resourceAccessor'}->{'update'}->execute('uuid' => $self->{'uuid'}, $self->resource_parameter_name() => $self);
16     foreach my $param (keys %$self) {
17         if (exists $response->{$param}) {
18             $self->{$param} = $response->{$param};
19         }
20     }
21     $self;
22 }
23
24 sub resource_parameter_name
25 {
26     my $self = shift;
27     my $pname = $self->{'resourceAccessor'}->{'resourcesName'};
28     $pname =~ s/s$//;           # XXX not a very good singularize()
29     $pname;
30 }
31
32 1;