MT#59216 restore appending wildcard behaviour

with the change to harmonize wildcard symbols % and *
to * in query param filters across all restapi rails,
only

 - /api/subscribers?alias=
 - /api/subscribers?pbx_extension=
 - /api/subscribers?primary_number=
 - /api/pbxdevices?pbx_extension=

are supposed to include implicit leading an trailing
wildcards.

panel UI uses trailing wildcard by default everywhere,
and so should the databales of the new Admin UI.

external_id were used to support patterns, but must
not include a trailing wildcard in rest API, as this
can break logic that rely on unique api request results.

we now therefore no longer append wildcards in particular to:

 - /api/voicemails?folder=
 - /api/voicemailgreetings?type=
 - /api/subscribers?subscriber_external_id=
 - /api/subscribers?customer_external_id=
 - /api/subscribers?display_name=
 - /api/subscribers?domain=
 - /api/profilepackages?profile_name=
 - /api/profilepackages?network_name=
 - /api/pbxdevices?display_name=
 - /api/faxserversettings?name_or_password=

Change-Id: I40ef1912d7224a56c6d14619d258c70e447ab23d
(cherry picked from commit 672a3110bc)
mr10.5
Rene Krenn 1 year ago
parent 2d78375e9a
commit 275d47b3ab

@ -57,7 +57,7 @@ sub query_params {
description => 'Search for PBX devices matching a subscriber\'s extension pattern',
query => {
first => sub {
my ($q,$is_pattern) = escape_search_string_pattern(shift);
my ($q,$is_pattern) = escape_search_string_pattern(shift,0,1,1);
{ 'provisioning_voip_subscriber.pbx_extension' => { like => $q } };
},

@ -181,7 +181,7 @@ sub query_params {
description => 'Filter for subscribers who has specified alias pattern',
query => {
first => sub {
my ($q,$is_pattern) = escape_search_string_pattern(shift);
my ($q,$is_pattern) = escape_search_string_pattern(shift,0,1,1);
{
'voip_dbaliases.username' => { like => $q },
};
@ -223,7 +223,7 @@ sub query_params {
description => 'Filter for subscribers of contracts with a specific primary number pattern',
query => {
first => sub {
my ($q,$is_pattern) = escape_search_string_pattern(shift);
my ($q,$is_pattern) = escape_search_string_pattern(shift,0,1,1);
{ \['concat(primary_number.cc, primary_number.ac, primary_number.sn) like ?', $q ] };
},
@ -237,7 +237,7 @@ sub query_params {
description => 'Filter for subscribers of contracts with a specific PBX extension',
query => {
first => sub {
my ($q,$is_pattern) = escape_search_string_pattern(shift);
my ($q,$is_pattern) = escape_search_string_pattern(shift,0,1,1);
{ 'provisioning_voip_subscriber.pbx_extension' => { like => $q } };
},

@ -241,7 +241,7 @@ sub _resolve_joins {
sub get_search_string_pattern {
my ($c,$no_pattern) = @_;
return escape_search_string_pattern($c->request->params->{sSearch},$no_pattern);
return escape_search_string_pattern($c->request->params->{sSearch},$no_pattern,1,0);
}

@ -233,7 +233,7 @@ sub trim {
sub escape_search_string_pattern {
my ($searchString,$no_pattern) = @_;
my ($searchString,$no_pattern,$append,$prepend) = @_;
$searchString //= "";
my $is_pattern = 0;
return ($searchString,$is_pattern) if $no_pattern;
@ -250,14 +250,14 @@ sub escape_search_string_pattern {
$token;
} split(/(\\\\)/,$searchString,-1));
if (not $is_pattern and not $no_pattern and length($searchString_escaped) > 0) {
#if ($append) {
if ($append) {
$searchString_escaped .= '%';
$is_pattern = 1;
#}
#if ($prepend) {
# $searchString_escaped = '%' . $searchString_escaped;
# $is_pattern = 1;
#}
}
if ($prepend) {
$searchString_escaped = '%' . $searchString_escaped;
$is_pattern = 1;
}
}
return ($searchString_escaped,$is_pattern);

Loading…
Cancel
Save