expose is_recommended in autocomplete API too

This commit is contained in:
Andrew Williamson 2019-05-16 11:59:03 +01:00
Родитель 95d85feaf4
Коммит 41be103b28
6 изменённых файлов: 10 добавлений и 7 удалений

Просмотреть файл

@ -118,7 +118,7 @@ for autocomplete though, there are a couple key differences:
:query string tag: Filter by exact tag name. Multiple tag names can be specified, separated by comma(s).
:query string type: Filter by :ref:`add-on type <addon-detail-type>`.
:query string sort: The sort parameter. The available parameters are documented in the :ref:`table below <addon-search-sort>`.
:>json array results: An array of :ref:`add-ons <addon-detail-object>`. Only the ``id``, ``icon_url``, ``name``, ``type`` and ``url`` fields are supported though.
:>json array results: An array of :ref:`add-ons <addon-detail-object>`. Only the ``id``, ``icon_url``, ``is_recommended``, ``name``, ``type`` and ``url`` fields are supported though.
------

Просмотреть файл

@ -323,6 +323,7 @@ v4 API changelog
* 2019-04-11: removed ``id``, ``username`` and ``url`` from the ``user`` object in the activity review notes APIs. https://github.com/mozilla/addons-server/issues/11002
* 2019-05-09: added ``is_recommended`` to addons API. https://github.com/mozilla/addons-server/issues/11278
* 2019-05-16: added /reviewers/canned-responses/ endpoint. https://github.com/mozilla/addons-server/issues/11276
* 2019-05-23: added ``is_recommended`` to addons autocomplete API also. https://github.com/mozilla/addons-server/issues/11439
----------------
v5 API changelog

Просмотреть файл

@ -710,7 +710,7 @@ class ESAddonSerializer(BaseESSerializer, AddonSerializer):
class ESAddonAutoCompleteSerializer(ESAddonSerializer):
class Meta(ESAddonSerializer.Meta):
fields = ('id', 'icon_url', 'name', 'type', 'url')
fields = ('id', 'icon_url', 'is_recommended', 'name', 'type', 'url')
model = Addon
def get_url(self, obj):

Просмотреть файл

@ -1259,11 +1259,12 @@ class TestESAddonAutoCompleteSerializer(ESTestCase):
result = self.serialize()
assert (
set(result.keys()) ==
{'id', 'name', 'icon_url', 'type', 'url'}
{'id', 'name', 'icon_url', 'is_recommended', 'type', 'url'}
)
assert result['id'] == self.addon.pk
assert result['name'] == {'en-US': six.text_type(self.addon.name)}
assert result['icon_url'] == absolutify(self.addon.get_icon_url(64))
assert result['is_recommended'] == self.addon.is_recommended is False
assert result['type'] == 'extension'
assert result['url'] == absolutify(self.addon.get_url_path())
@ -1310,7 +1311,7 @@ class TestESAddonAutoCompleteSerializer(ESTestCase):
result = self.serialize()
assert (
set(result.keys()) ==
{'id', 'name', 'icon_url', 'type', 'url'}
{'id', 'name', 'icon_url', 'is_recommended', 'type', 'url'}
)
assert result['type'] == 'persona'
assert result['icon_url'] == absolutify(self.addon.get_icon_url(64))
@ -1334,7 +1335,7 @@ class TestESAddonAutoCompleteSerializer(ESTestCase):
result = self.serialize()
assert (
set(result.keys()) ==
{'id', 'name', 'icon_url', 'type', 'url'}
{'id', 'name', 'icon_url', 'is_recommended', 'type', 'url'}
)
assert result['type'] == 'persona'
assert result['icon_url'] == absolutify(self.addon.get_icon_url(64))

Просмотреть файл

@ -1926,7 +1926,7 @@ class TestAddonAutoCompleteSearchView(ESTestCase):
qset = view.get_queryset()
includes = set((
'default_locale', 'icon_type', 'id', 'modified',
'default_locale', 'icon_type', 'id', 'is_recommended', 'modified',
'name_translations', 'persona', 'slug', 'type'))
assert set(qset.to_dict()['_source']['includes']) == includes

Просмотреть файл

@ -391,7 +391,8 @@ class AddonAutoCompleteSearchView(AddonSearchView):
# only needs to return very few things.
included_fields = (
'icon_type', # Needed for icon_url.
'id', # Needed for... id.
'id', # Needed for... id
'is_recommended',
'modified', # Needed for icon_url.
'name_translations', # Needed for... name.
'default_locale', # Needed for translations to work.