From 16f8bebad573b63e5236653b1777e1e55c2ac042 Mon Sep 17 00:00:00 2001
From: Kenzo-Hugo Hillion <kenzo-hugo.hillion1@pasteur.fr>
Date: Mon, 24 Jun 2019 15:35:02 +0200
Subject: [PATCH] add query args to configure size of the window

---
 backend/metagenedb/apps/catalog/urls.py             | 1 +
 backend/metagenedb/apps/catalog/views/statistics.py | 6 ++++--
 backend/requirements_dev.txt                        | 2 ++
 3 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/backend/metagenedb/apps/catalog/urls.py b/backend/metagenedb/apps/catalog/urls.py
index 7f65d9d..7a71ee3 100644
--- a/backend/metagenedb/apps/catalog/urls.py
+++ b/backend/metagenedb/apps/catalog/urls.py
@@ -2,6 +2,7 @@ from django.urls import re_path
 
 from . import views
 
+
 urlpatterns = [
     re_path(r'^api/genes/$', views.gene_list, name='genes'),
     re_path(r'^api/genes/(?P<gene_id>.*)$', views.gene_detail),
diff --git a/backend/metagenedb/apps/catalog/views/statistics.py b/backend/metagenedb/apps/catalog/views/statistics.py
index 36ca58a..0152f31 100644
--- a/backend/metagenedb/apps/catalog/views/statistics.py
+++ b/backend/metagenedb/apps/catalog/views/statistics.py
@@ -36,8 +36,10 @@ def _count_windows(df, window_col, window_size=10000):
 
 
 @api_view(['GET'])
-def gene_length(request):
+def gene_length(request, window_size=10000):
+    if 'window_size' in request.query_params:
+        window_size = int(request.query_params.get('window_size'))
     df = pd.DataFrame(list(Gene.objects.all().values(GENE_LENGTH_COL)))
     return Response({
-        'data': _count_windows(df, GENE_LENGTH_COL)
+        'data': _count_windows(df, GENE_LENGTH_COL, window_size)
     })
diff --git a/backend/requirements_dev.txt b/backend/requirements_dev.txt
index 1beca5f..fb65183 100644
--- a/backend/requirements_dev.txt
+++ b/backend/requirements_dev.txt
@@ -15,7 +15,9 @@ importlib-metadata==0.18
 kiwisolver==1.1.0
 mccabe==0.6.1
 more-itertools==7.0.0
+numpy==1.16.4
 packaging==19.0
+pandas==0.24.2
 pluggy==0.12.0
 psycopg2==2.8.2
 py==1.8.0
-- 
GitLab