[odrs-web] Return reviews with less than 2 reports by default
- From: Richard Hughes <rhughes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [odrs-web] Return reviews with less than 2 reports by default
- Date: Wed, 3 Jul 2019 10:53:58 +0000 (UTC)
commit 0551497e72ae82c4f973fb1a99e7e7ca062bd4e9
Author: Richard Hughes <richard hughsie com>
Date: Tue Jul 2 13:04:15 2019 +0100
Return reviews with less than 2 reports by default
This is the only way we're going to get more than one report for a review...
app_data/odrs/tests/odrs_test.py | 19 +++++++++++++------
app_data/odrs/views_api.py | 21 ++++++++++-----------
2 files changed, 23 insertions(+), 17 deletions(-)
---
diff --git a/app_data/odrs/tests/odrs_test.py b/app_data/odrs/tests/odrs_test.py
index a441159..28b7ca9 100644
--- a/app_data/odrs/tests/odrs_test.py
+++ b/app_data/odrs/tests/odrs_test.py
@@ -343,18 +343,22 @@ class OdrsTest(unittest.TestCase):
assert b'An essential part of my daily workflow' in rv.data, rv.data
assert b'user_skey' in rv.data, rv.data
- def review_upvote(self):
+ def review_upvote(self, user_hash=None):
+ if not user_hash:
+ user_hash = self.user_hash
data = {'review_id': 1,
'app_id': 'inkscape.desktop',
- 'user_hash': self.user_hash,
- 'user_skey': _get_user_key(self.user_hash, 'inkscape.desktop')}
+ 'user_hash': user_hash,
+ 'user_skey': _get_user_key(user_hash, 'inkscape.desktop')}
return self.app.post('/1.0/reviews/api/upvote', data=json.dumps(data))
- def review_report(self):
+ def review_report(self, user_hash=None):
+ if not user_hash:
+ user_hash = self.user_hash
data = {'review_id': 1,
'app_id': 'inkscape.desktop',
- 'user_hash': self.user_hash,
- 'user_skey': _get_user_key(self.user_hash, 'inkscape.desktop')}
+ 'user_hash': user_hash,
+ 'user_skey': _get_user_key(user_hash, 'inkscape.desktop')}
return self.app.post('/1.0/reviews/api/report', data=json.dumps(data))
def test_api_upvote(self):
@@ -388,6 +392,9 @@ class OdrsTest(unittest.TestCase):
rv = self.review_report()
assert b'success": true' in rv.data, rv.data
assert b'voted #1 -5' in rv.data, rv.data
+ rv = self.review_report(user_hash='729342d6a7c477bb1ea0186f8c60804a3d783183')
+ assert b'success": true' in rv.data, rv.data
+ assert b'voted #1 -5' in rv.data, rv.data
rv = self._review_fetch(app_id='inkscape.desktop')
assert b'An essential part of my daily workflow' not in rv.data, rv.data
diff --git a/app_data/odrs/views_api.py b/app_data/odrs/views_api.py
index 60dfc94..f8dc443 100644
--- a/app_data/odrs/views_api.py
+++ b/app_data/odrs/views_api.py
@@ -23,6 +23,8 @@ from .models import _vote_exists
from .util import json_success, json_error, _locale_is_compatible, _eventlog_add, _get_user_key,
_get_datestr_from_dt
from .util import _sanitised_version, _sanitised_summary, _sanitised_description, _get_rating_for_app_id
+ODRS_REPORTED_CNT = 2
+
def _get_client_address():
""" Gets user IP address """
if request.headers.getlist('X-Forwarded-For'):
@@ -137,21 +139,18 @@ def api_submit():
db.session.commit()
return json_success()
-def _get_for_app_id(app_id, user_hash=None):
- reviews = db.session.query(Review).\
- filter(Review.app_id == app_id).\
- filter(Review.reported == 0).\
- order_by(Review.date_created.desc()).all()
- return [review.asdict(user_hash) for review in reviews]
-
@app.route('/1.0/reviews/api/app/<app_id>/<user_hash>')
@app.route('/1.0/reviews/api/app/<app_id>')
def api_show_app(app_id, user_hash=None):
"""
Return details about an application.
"""
- reviews = _get_for_app_id(app_id, user_hash)
- dat = json.dumps(reviews, sort_keys=True, indent=4, separators=(',', ': '))
+ reviews = db.session.query(Review).\
+ filter(Review.app_id == app_id).\
+ filter(Review.reported < ODRS_REPORTED_CNT).\
+ order_by(Review.date_created.desc()).all()
+ items = [review.asdict(user_hash) for review in reviews]
+ dat = json.dumps(items, sort_keys=True, indent=4, separators=(',', ': '))
return Response(response=dat,
status=200, \
mimetype='application/json')
@@ -194,7 +193,7 @@ def api_fetch():
app_ids.extend(item['compat_ids'])
reviews = db.session.query(Review).\
filter(Review.app_id.in_(app_ids)).\
- filter(Review.reported == 0).all()
+ filter(Review.reported < ODRS_REPORTED_CNT).all()
# if user does not exist then create
user = db.session.query(User).filter(User.user_hash == item['user_hash']).first()
@@ -247,7 +246,7 @@ def api_all(user_hash=None):
"""
Return all the reviews on the server as a JSON object.
"""
- reviews = db.session.query(Review).filter(Review.reported == 0).all()
+ reviews = db.session.query(Review).filter(Review.reported < ODRS_REPORTED_CNT).all()
items = [review.asdict(user_hash) for review in reviews]
dat = json.dumps(items, sort_keys=True, indent=4, separators=(',', ': '))
return Response(response=dat,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]