From d1528a66f022718f2845c4677f1bfa01efb7bb6a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?D=C3=B3ra=20Kocsis?= <dora@dynare.org>
Date: Tue, 28 Jan 2020 16:18:03 +0100
Subject: [PATCH] quick fix: get_dataset.m

---
 get_dataset.m | 43 ++++++++++++++++++-------------------------
 1 file changed, 18 insertions(+), 25 deletions(-)

diff --git a/get_dataset.m b/get_dataset.m
index 4cff257..583e41f 100644
--- a/get_dataset.m
+++ b/get_dataset.m
@@ -1,22 +1,15 @@
 function [dd, dat] = get_dataset(provider,dataset, varargin)
-if varargin > 0
-    options = parse_options(varargin)
+if numel(varargin) > 0
+    options = parse_options(varargin);
 else
     options = ['?limit=1000&offset=0&q=&observations=1&align_periods=1&' ...
-               'dimensions={}']
+               'dimensions={}'];
 end
-% https://api.db.nomics.world/v22/series/AMECO/UVGD?limit=1000&offset=0&q=&observations=1&align_periods=1&dimensions=%7B%7D
-%url = join(['https://api.db.nomics.world/v22/series/', provider, '/',...
-%            dataset ])
-%url = url + options
-%json = urlread(join(url))
-%save test json
-f = fopen("test_dataset.json");
-json = fgets(f);
-fclose(f);
-dat = jsondecode(json);
+default_api_base_url = 'https://api.db.nomics.world/v22/series/';
+url = join([default_api_base_url, provider, '/', dataset, options]);
+dat = webread(join(url));
 docs = dat.series.docs;
-nseries = length(docs);
+nseries = dat.dataset.nb_series;
 nrow = 1;
 for id = 1:nseries
     nrow = nrow + length(docs(id).period);
@@ -77,27 +70,27 @@ for i = 1:nseries
 end
 
 function options_str = parse_options(arguments)
-i = 1
-options = struct()
+i = 1;
+options = struct();
 options.limit = 1000;
-options.dimensions = '{}'
-options.mask = ''
+options.dimensions = '{}';
+options.mask = '';
 while i <= length(arguments)
     if arguments{1} == 'limit'
-        options.limit = arguments{2}
-        i = i + 2
+        options.limit = arguments{2};
+        i = i + 2;
     elseif arguments{1} == 'dimensions'
         if ~isempty(options.mask)
-            error('rdb: you can''t use both option dimension and option mask')
+            error('rdb: you can''t use both option dimension and option mask');
         end
     elseif arguments =='mask'
         if options.dimensions ~= '{}'
-            error('rdb: you can''t use both option dimension and option mask')
+            error('rdb: you can''t use both option dimension and option mask');
         end
-        options.mask = arguments{2}
-        i = i+2
+        options.mask = arguments{2};
+        i = i+2;
     else
-        disp_usage()
+        disp_usage();
     end
 end
 
-- 
GitLab