Merlijn van Deen has uploaded a new change for review.
https://gerrit.wikimedia.org/r/178128
Change subject: Add meta info for run, rev and query
......................................................................
Add meta info for run, rev and query
Change-Id: I7631a3fa78c3f8a219a0ce5c6f3da866fcbe0000
---
M quarry/web/app.py
1 file changed, 68 insertions(+), 0 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/analytics/quarry/web
refs/changes/28/178128/1
diff --git a/quarry/web/app.py b/quarry/web/app.py
index 862f09c..4aecd3c 100644
--- a/quarry/web/app.py
+++ b/quarry/web/app.py
@@ -36,6 +36,11 @@
_punct_re = re.compile(r'[\t !"#$%&\'()*\-/<=>?@\[\\\]^_`{|},.]+')
+def datetime_json_formatter(dt):
+ try:
+ return dt.isoformat()
+ except AttributeError:
+ return TypeError
class QueriesRangeBasedPagination(RangeBasedPagination):
@@ -367,6 +372,69 @@
response.headers['Access-Control-Allow-Origin'] = '*'
return response
+def run_data(qrun):
+ return {
+ 'id': qrun.id,
+ 'status': qrun.status_message,
+ 'timestamp': qrun.timestamp,
+ 'extra': json.loads(qrun.extra_info or "{}"),
+ }
+
+def rev_data(rev):
+ return {
+ 'id': rev.id,
+ 'sql': rev.text,
+ 'timestamp': rev.timestamp,
+ 'latest_run': rev.latest_run.id,
+ }
+
+def query_data(query):
+ return {
+ 'id': query.id,
+ 'author': query.user.username,
+ 'title': query.title,
+ 'timestamp': query.last_touched,
+ 'parent': query.parent_id,
+ 'latest_revision': query.latest_rev.id,
+ 'published': bool(query.published),
+ 'description': query.description,
+ }
+
[email protected]("/run/<int:qrun_id>/meta")
+def output_run_meta(qrun_id):
+ qrun = g.conn.session.query(QueryRun).get(qrun_id)
+
+ return Response(json.dumps(
+ {'run': run_data(qrun),
+ 'rev': rev_data(qrun.rev),
+ 'query': query_data(qrun.rev.query)
+ }, default=datetime_json_formatter),
+ mimetype='application/json',
+ )
+
[email protected]("/rev/<int:rev_id>/meta")
+def output_rev_meta(rev_id):
+ rev = g.conn.session.query(QueryRevision).get(rev_id)
+
+ return Response(json.dumps(
+ {'latest_run': run_data(rev.latest_run),
+ 'rev': rev_data(rev),
+ 'query': query_data(rev.query)
+ }, default=datetime_json_formatter),
+ mimetype='application/json',
+ )
+
[email protected]("/query/<int:query_id>/meta")
+def output_query_meta(query_id):
+ query = g.conn.session.query(Query).get(query_id)
+
+ return Response(json.dumps(
+ {'latest_run': run_data(query.latest_rev.latest_run),
+ 'latest_rev': rev_data(query.latest_rev),
+ 'query': query_data(query)
+ }, default=datetime_json_formatter),
+ mimetype='application/json',
+ )
@app.template_filter()
def timesince(dt, default="just now"):
--
To view, visit https://gerrit.wikimedia.org/r/178128
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I7631a3fa78c3f8a219a0ce5c6f3da866fcbe0000
Gerrit-PatchSet: 1
Gerrit-Project: analytics/quarry/web
Gerrit-Branch: master
Gerrit-Owner: Merlijn van Deen <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits