matrix42: rename search_filter to filter (#83112)
gitea/passerelle/pipeline/head This commit looks good
Details
gitea/passerelle/pipeline/head This commit looks good
Details
This commit is contained in:
parent
11d3bd5a9b
commit
e2a45ea01b
|
@ -105,6 +105,9 @@ class Matrix42(BaseResource, HTTPResource):
|
|||
'description': _('Columns in the result set, separated by comma'),
|
||||
'example_value': 'ID,[Expression-ObjectID] as EOID,LastName,FirstName,MailAddress',
|
||||
},
|
||||
'filter': {
|
||||
'description': _('Filter: "WHERE search_filter"'),
|
||||
},
|
||||
'template': {
|
||||
'description': _(
|
||||
'Django template for text attribute - if none, use DisplayString|DisplayName|Name'
|
||||
|
@ -116,10 +119,7 @@ class Matrix42(BaseResource, HTTPResource):
|
|||
'example_value': '{{ ID }}',
|
||||
},
|
||||
'search_column': {
|
||||
'description': _('Search column: "where search_column LIKE \'%q%\'"'),
|
||||
},
|
||||
'search_filter': {
|
||||
'description': _('Search filter: "where search_column LIKE \'%q%\' and search_filter"'),
|
||||
'description': _('Search column: "WHERE search_column LIKE \'%q%\' (AND search_filter)"'),
|
||||
},
|
||||
'q': {'description': _('Search text (needs a search_column)')},
|
||||
'id': {'description': _('Get the whole fragment with this ID')},
|
||||
|
@ -130,10 +130,10 @@ class Matrix42(BaseResource, HTTPResource):
|
|||
request,
|
||||
ddname,
|
||||
columns=None,
|
||||
filter=None,
|
||||
template=None,
|
||||
id_template=None,
|
||||
search_column=None,
|
||||
search_filter=None,
|
||||
q=None,
|
||||
id=None,
|
||||
):
|
||||
|
@ -164,8 +164,11 @@ class Matrix42(BaseResource, HTTPResource):
|
|||
params['columns'] = columns
|
||||
if q is not None:
|
||||
params['where'] = "%s LIKE '%%%s%%'" % (search_column, q.replace("'", "''"))
|
||||
if search_filter:
|
||||
params['where'] += ' AND %s' % search_filter
|
||||
if filter:
|
||||
params['where'] += ' AND %s' % filter
|
||||
elif filter:
|
||||
params['where'] = filter
|
||||
|
||||
results = self.request(uri, params=params).get('Result') or []
|
||||
for result in results:
|
||||
add_id_and_text(result)
|
||||
|
|
|
@ -112,8 +112,30 @@ def test_matrix42_fragment(mocked_request, app, matrix42):
|
|||
assert resp.json['data'][0]['id'] == 'id:a9386c3e-cb7a-ed11-a3bb-000d3aaa0172'
|
||||
assert resp.json['data'][0]['text'] == 'ds:User1, Leo'
|
||||
|
||||
# filter more
|
||||
params['search_filter'] = '1=1'
|
||||
# filter
|
||||
del params['q']
|
||||
params['filter'] = '1=1'
|
||||
mocked_request.reset_mock()
|
||||
mocked_request.side_effect = [
|
||||
FakedResponse(content=TOKEN, status_code=200),
|
||||
FakedResponse(content=USERS, status_code=200),
|
||||
]
|
||||
resp = app.get(endpoint, params=params, status=200)
|
||||
_, get_users = mocked_request.call_args_list
|
||||
assert get_users[0] == (
|
||||
'GET',
|
||||
'https://matrix42.example.net/api/data/fragments/SPSUserClassBase/schema-info',
|
||||
)
|
||||
assert get_users[1]['params'] == {
|
||||
'columns': 'DisplayString',
|
||||
'where': '1=1',
|
||||
}
|
||||
assert resp.json['err'] == 0
|
||||
assert len(resp.json['data']) == 2
|
||||
|
||||
# filter & q
|
||||
params['q'] = 'User'
|
||||
params['filter'] = '1=1'
|
||||
mocked_request.reset_mock()
|
||||
mocked_request.side_effect = [
|
||||
FakedResponse(content=TOKEN, status_code=200),
|
||||
|
|
Loading…
Reference in New Issue