Merge "Allow tags to be filtered by name"
This commit is contained in:
commit
fc51eefce7
@ -49,17 +49,25 @@ class TagsController(rest.RestController):
|
||||
raise exc.NotFound(_("Tag %s not found") % tag_id)
|
||||
|
||||
@secure(checks.guest)
|
||||
@wsme_pecan.wsexpose([wmodels.Tag], int, int, int)
|
||||
def get_all(self, story_id=None, marker=None, limit=None):
|
||||
@wsme_pecan.wsexpose([wmodels.Tag], int, wtypes.text, int, int, int)
|
||||
def get_all(self, story_id=None, name=None, marker=None, limit=None,
|
||||
offset=None):
|
||||
"""Retrieve all tags for a given Story. If no story_id is provided
|
||||
all tags will be returned.
|
||||
all tags will be returned, optionally filtered by name.
|
||||
|
||||
:param story_id: Filter tags by story ID.
|
||||
:param name: Filter tags by name.
|
||||
:param marker: ID of the tag to start results from.
|
||||
:param limit: Maximum number of results per page.
|
||||
:param offset: Number of results to offset page by.
|
||||
"""
|
||||
|
||||
if not story_id:
|
||||
marker_tag = tags_api.tag_get_by_id(marker)
|
||||
tags = tags_api.tag_get_all(marker_tag, limit)
|
||||
tags = tags_api.tag_get_all(name=name,
|
||||
marker=marker_tag,
|
||||
limit=limit,
|
||||
offset=offset)
|
||||
|
||||
return [wmodels.Tag.from_db_model(t) for t in tags]
|
||||
|
||||
|
@ -39,10 +39,12 @@ def tag_get_by_name(name, session=None):
|
||||
return query.first()
|
||||
|
||||
|
||||
def tag_get_all(marker=None, limit=None):
|
||||
def tag_get_all(name=None, marker=None, limit=None, offset=None):
|
||||
return api_base.entity_get_all(models.StoryTag,
|
||||
name=name,
|
||||
marker=marker,
|
||||
limit=limit)
|
||||
limit=limit,
|
||||
offset=offset)
|
||||
|
||||
|
||||
def tag_get_count(**kwargs):
|
||||
|
Loading…
x
Reference in New Issue
Block a user