MT#6827 API pbxdevice* improvements

search queries, description and form validation
ipeshinskaya/InvoiceTemplate5
Gerhard Jungwirth 11 years ago
parent 0de65edace
commit 139dabf562

@ -18,13 +18,35 @@ class_has 'api_description' => (
is => 'ro', is => 'ro',
isa => 'Str', isa => 'Str',
default => default =>
'TODO', 'Specifies a config to be set in <a href="#pbxdeviceprofiles">PbxDeviceProfiles</a>.',
); );
class_has 'query_params' => ( class_has 'query_params' => (
is => 'ro', is => 'ro',
isa => 'ArrayRef', isa => 'ArrayRef',
default => sub {[ default => sub {[
{
param => 'content_type',
description => 'Filter for configs matching a content_type pattern',
query => {
first => sub {
my $q = shift;
{ content_type => { like => $q } };
},
second => sub {},
},
},
{
param => 'version',
description => 'Filter for configs matching a version name pattern',
query => {
first => sub {
my $q = shift;
{ version => { like => $q } };
},
second => sub {},
},
},
]}, ]},
); );

@ -18,13 +18,35 @@ class_has 'api_description' => (
is => 'ro', is => 'ro',
isa => 'Str', isa => 'Str',
default => default =>
'TODO', 'Specifies a model to be set in <a href="#pbxdeviceconfigs">PbxDeviceConfigs</a>.',
); );
class_has 'query_params' => ( class_has 'query_params' => (
is => 'ro', is => 'ro',
isa => 'ArrayRef', isa => 'ArrayRef',
default => sub {[ default => sub {[
{
param => 'model',
description => 'Filter for models matching a model name pattern',
query => {
first => sub {
my $q = shift;
{ model => { like => $q } };
},
second => sub {},
},
},
{
param => 'vendor',
description => 'Filter for models matching a vendor name pattern',
query => {
first => sub {
my $q = shift;
{ vendor => { like => $q } };
},
second => sub {},
},
},
]}, ]},
); );

@ -18,13 +18,24 @@ class_has 'api_description' => (
is => 'ro', is => 'ro',
isa => 'Str', isa => 'Str',
default => default =>
'TODO', 'Specifies a profile to be set in <a href="#pbxdevices">PbxDevices</a>.',
); );
class_has 'query_params' => ( class_has 'query_params' => (
is => 'ro', is => 'ro',
isa => 'ArrayRef', isa => 'ArrayRef',
default => sub {[ default => sub {[
{
param => 'name',
description => 'Filter for profiles matching a name pattern',
query => {
first => sub {
my $q = shift;
{ name => { like => $q } };
},
second => sub {},
},
},
]}, ]},
); );

@ -53,13 +53,12 @@ sub resource_from_item {
delete $resource{device_id}; delete $resource{device_id};
my $form = $self->get_form($c); my $form = $self->get_form($c);
# return unless $self->validate_form( return unless $self->validate_form(
# c => $c, c => $c,
# form => $form, form => $form,
# resource => \%resource, resource => \%resource,
# run => 0, run => 0,
# ); );
$resource{id} += 0;
return \%resource; return \%resource;
} }
@ -67,6 +66,12 @@ sub resource_from_item {
sub item_rs { sub item_rs {
my ($self, $c) = @_; my ($self, $c) = @_;
my $item_rs = $c->model('DB')->resultset('autoprov_configs'); my $item_rs = $c->model('DB')->resultset('autoprov_configs');
if($c->user->roles eq "admin") {
} elsif ($c->user->roles eq "reseller") {
$item_rs = $item_rs->search(
{ 'device.reseller_id' => $c->user->reseller_id, },
{ prefetch => 'device', });
}
return $item_rs; return $item_rs;
} }

@ -59,8 +59,7 @@ sub resource_from_item {
resource => \%resource, resource => \%resource,
run => 0, run => 0,
); );
$resource{id} += 0; $resource{reseller_id} = $item->reseller_id + 0;
$resource{reseller_id} += 0;
return \%resource; return \%resource;
} }

@ -59,7 +59,6 @@ sub resource_from_item {
resource => \%resource, resource => \%resource,
run => 0, run => 0,
); );
$resource{id} += 0;
return \%resource; return \%resource;
} }
@ -67,6 +66,12 @@ sub resource_from_item {
sub item_rs { sub item_rs {
my ($self, $c) = @_; my ($self, $c) = @_;
my $item_rs = $c->model('DB')->resultset('autoprov_profiles'); my $item_rs = $c->model('DB')->resultset('autoprov_profiles');
if($c->user->roles eq "admin") {
} elsif ($c->user->roles eq "reseller") {
$item_rs = $item_rs->search(
{ 'device.reseller_id' => $c->user->reseller_id, },
{ prefetch => { 'config' => 'device', }});
}
return $item_rs; return $item_rs;
} }

Loading…
Cancel
Save