mirror of
https://github.com/reddit-archive/reddit.git
synced 2026-01-31 09:48:01 -05:00
by_id: Ignore missing Things.
This commit is contained in:
@@ -514,7 +514,8 @@ class ByIDController(ListingController):
|
||||
return self.names
|
||||
|
||||
@require_oauth2_scope("read")
|
||||
@validate(links = VByName("names", thing_cls = Link, multiple = True))
|
||||
@validate(links=VByName("names", thing_cls=Link,
|
||||
ignore_missing=True, multiple=True))
|
||||
def GET_listing(self, links, **env):
|
||||
if not links:
|
||||
return self.abort404()
|
||||
|
||||
@@ -664,7 +664,8 @@ class VByName(Validator):
|
||||
# Lookup tdb_sql.Thing or tdb_cassandra.Thing objects by fullname.
|
||||
splitter = re.compile('[ ,]+')
|
||||
def __init__(self, param, thing_cls=None, multiple=False, limit=None,
|
||||
error=errors.NO_THING_ID, backend='sql', **kw):
|
||||
error=errors.NO_THING_ID, ignore_missing=False,
|
||||
backend='sql', **kw):
|
||||
# Limit param only applies when multiple is True
|
||||
if not multiple and limit is not None:
|
||||
raise TypeError('multiple must be True when limit is set')
|
||||
@@ -673,6 +674,7 @@ class VByName(Validator):
|
||||
self.multiple = multiple
|
||||
self.limit = limit
|
||||
self._error = error
|
||||
self.ignore_missing = ignore_missing
|
||||
self.backend = backend
|
||||
|
||||
Validator.__init__(self, param, **kw)
|
||||
@@ -686,7 +688,11 @@ class VByName(Validator):
|
||||
return self.set_error(errors.TOO_MANY_THING_IDS)
|
||||
if items:
|
||||
try:
|
||||
return tdb_cassandra.Thing._by_fullname(items, return_dict=False)
|
||||
return tdb_cassandra.Thing._by_fullname(
|
||||
items,
|
||||
ignore_missing=self.ignore_missing,
|
||||
return_dict=False,
|
||||
)
|
||||
except NotFound:
|
||||
pass
|
||||
else:
|
||||
@@ -697,8 +703,12 @@ class VByName(Validator):
|
||||
return self.set_error(errors.TOO_MANY_THING_IDS)
|
||||
if items and (self.multiple or self.re.match(items)):
|
||||
try:
|
||||
return Thing._by_fullname(items, return_dict=False,
|
||||
data=True)
|
||||
return Thing._by_fullname(
|
||||
items,
|
||||
return_dict=False,
|
||||
ignore_missing=self.ignore_missing,
|
||||
data=True,
|
||||
)
|
||||
except NotFound:
|
||||
pass
|
||||
|
||||
|
||||
Reference in New Issue
Block a user