Yurik has submitted this change and it was merged.

Change subject: Suppert multiple vega versions for v1 route
......................................................................


Suppert multiple vega versions for v1 route

Now it is possible to request a graph via
/{domain}/v1/vega2/{format}/...

support vega1 (same as before), vega2, and vega0 for autodetect
autodetect will try v2, if fail, will try to remove "data." for fields, and if
that also fails, will fallback to v1

Change-Id: Icea9eb75a7e72a9d9efadb1bcf7a5473388de90c
---
M routes/graphoid-v1.js
1 file changed, 23 insertions(+), 3 deletions(-)

Approvals:
  Yurik: Verified; Looks good to me, approved



diff --git a/routes/graphoid-v1.js b/routes/graphoid-v1.js
index 9eead15..2239695 100644
--- a/routes/graphoid-v1.js
+++ b/routes/graphoid-v1.js
@@ -76,6 +76,7 @@
     var p = state.request.params,
         format = p.format,
         domain = p.domain,
+        vegaver = p.vegaver,
         title = p.title,
         revid = p.revid,
         id_ext = p.id.split('.', 2),
@@ -98,6 +99,23 @@
     }
     if (format !== 'png') {
         throw new Err('info/param-format', 'req.format');
+    }
+
+    if (!vegaver) {
+        vegaver = 'vega1';
+    }
+    switch (vegaver) {
+        default:
+            throw new Err('info/param-vegaver', 'req.vegaver');
+        case 'vega0':
+            state.vegaver = 0;
+            break;
+        case 'vega1':
+            state.vegaver = 1;
+            break;
+        case 'vega2':
+            state.vegaver = 2;
+            break;
     }
 
     if (revid) {
@@ -242,7 +260,7 @@
 function renderOnCanvas(state) {
     var start = Date.now();
     return vega
-        .render(state.domain, state.graphData, 'png', 1, state.response, 
'public, s-maxage=30, max-age=30')
+        .render(state.domain, state.graphData, 'png', state.vegaver, 
state.response, 'public, s-maxage=30, max-age=30')
         .then(function () {
             metrics.endTiming('total.vega', start);
         })
@@ -255,7 +273,7 @@
 /**
  * Main entry point for graphoid
  */
-router.get('/:format/:title/:revid/:id', function(req, res) {
+function renderByHash(req, res) {
 
     var start = Date.now();
     var state = {request: req, response: res};
@@ -300,8 +318,10 @@
             metrics.increment(mx);
             req.logger.log(msg, l);
         });
-});
+}
 
+router.get('/:vegaver/:format/:title/:revid/:id', renderByHash);
+router.get('/:format/:title/:revid/:id', renderByHash);
 
 function init(app) {
 

-- 
To view, visit https://gerrit.wikimedia.org/r/253490
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Icea9eb75a7e72a9d9efadb1bcf7a5473388de90c
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/services/graphoid
Gerrit-Branch: master
Gerrit-Owner: Yurik <[email protected]>
Gerrit-Reviewer: Yurik <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to