From 0c0199438831c1f4c3ea1b21f0e0d38995f768d2 Mon Sep 17 00:00:00 2001 From: Flaviu Mates Date: Mon, 2 Nov 2020 18:31:42 +0200 Subject: [PATCH] TT#96803 Enhance /api/pbxdevices filtering * Enable filtering by subscriber's pbx_extension and display_name with wildcard at the end of string Change-Id: Ibaee1eddf760be44d11f2df5a9dbc544fe35495c --- lib/NGCP/Panel/Controller/API/PbxDevices.pm | 31 +++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/lib/NGCP/Panel/Controller/API/PbxDevices.pm b/lib/NGCP/Panel/Controller/API/PbxDevices.pm index e0fbf1f904..34af2e4d9a 100644 --- a/lib/NGCP/Panel/Controller/API/PbxDevices.pm +++ b/lib/NGCP/Panel/Controller/API/PbxDevices.pm @@ -46,6 +46,37 @@ sub query_params { param => 'station_name', description => 'Search for PBX devices matching a station_name pattern (wildcards possible)', query_type => 'string_like', + }, + { + param => 'pbx_extension', + description => 'Search for PBX devices matching a subscriber\'s extension pattern (wildcards possible)', + query => { + first => sub { + my $q = shift; + { 'provisioning_voip_subscriber.pbx_extension' => { like => "$q%" } }; + + }, + second => sub { + return { join => { 'autoprov_field_device_lines' => 'provisioning_voip_subscriber'} } + }, + }, + }, + { + param => 'display_name', + description => 'Search for PBX devices matching a subscriber\'s diplay name pattern (wildcards possible)', + query => { + first => sub { + my $q = shift; + { + 'attribute.attribute' => 'display_name', + 'voip_usr_preferences.value' => { like => "$q%" } + }; + + }, + second => sub { + return { join => { 'autoprov_field_device_lines' => {'provisioning_voip_subscriber' => { 'voip_usr_preferences' => 'attribute' } } } } + }, + }, } ];