@@ -387,6 +387,69 @@ setSDMXServiceProviders <- function(){ # nocov start
387
387
# )
388
388
# )
389
389
390
+ # Bundesbank
391
+ BBK <- SDMXServiceProvider(
392
+ agencyId = " BBK" , name = " Bundesbank" ,
393
+ scale = " national" , country = " DEU" ,
394
+ builder = SDMXRequestBuilder(
395
+ regUrl = " https://api.statistiken.bundesbank.de/rest/metadata" ,
396
+ repoUrl = " https://api.statistiken.bundesbank.de/rest" ,
397
+ formatter = list (
398
+ dataflow = function (obj ){return (obj )},
399
+ datastructure = function (obj ){return (obj )},
400
+ data = function (obj ){return (obj )}
401
+ ),
402
+ # resource handler
403
+ handler = list (
404
+
405
+ # dataflow resource (dataflow/agencyID/resourceID/version)
406
+ # -----------------------------------------------------------------------
407
+ dataflow = function (obj ){
408
+ req <- sprintf(" %s/dataflow/%s" ,obj @ regUrl , obj @ providerId )
409
+ if (! is.null(obj @ resourceId )) req <- paste(req , obj @ resourceId , sep = " /" )
410
+ return (req )
411
+ },
412
+
413
+ # datastructure resource (datastructure/agencyID/resourceID/version)
414
+ # --------------------------------------------------------------------------------
415
+ datastructure = function (obj ){
416
+ req <- sprintf(" %s/datastructure/%s" ,obj @ regUrl , obj @ providerId )
417
+ if (! is.null(obj @ resourceId )) req <- paste(req , obj @ resourceId , sep = " /" )
418
+ req <- paste0(req , " ?references=children" ) # TODO to see later to have arg for this
419
+ return (req )
420
+ },
421
+
422
+ # data resource (data/flowRef/key/providerRef)
423
+ # ----------------------------------------------------------
424
+ data = function (obj ){
425
+ if (is.null(obj @ flowRef )) stop(" Missing flowRef value" )
426
+ req <- sprintf(" %s/data/%s/%s" ,obj @ repoUrl , obj @ flowRef , obj @ key )
427
+
428
+ # DataQuery
429
+ # -> temporal extent (if any)
430
+ addParams = FALSE
431
+ if (! is.null(obj @ start )){
432
+ req <- paste0(req , " ?" )
433
+ addParams = TRUE
434
+ req <- paste0(req , " startPeriod=" , obj @ start )
435
+ }
436
+ if (! is.null(obj @ end )){
437
+ if (! addParams ){
438
+ req <- paste0(req , " ?" )
439
+ }else {
440
+ req <- paste0(req , " &" )
441
+ }
442
+ req <- paste0(req , " endPeriod=" , obj @ end )
443
+ }
444
+
445
+ return (req )
446
+ }
447
+ ),
448
+ compliant = FALSE
449
+ )
450
+ )
451
+
452
+
390
453
# other data providers
391
454
# --------------------
392
455
@@ -440,7 +503,7 @@ setSDMXServiceProviders <- function(){ # nocov start
440
503
# international
441
504
BIS , ECB , ESTAT , IMF , OECD , UNICEF , CD2030 , UNSD , ILO_Legacy , ILO , WBG_WITS , WB , PDH ,
442
505
# national
443
- ABS , NBB , INSEE , INEGI , ISTAT , NOMIS , LSD , NCSI , STAT_EE ,
506
+ ABS , NBB , INSEE , INEGI , ISTAT , NOMIS , LSD , NCSI , STAT_EE , BBK ,
444
507
# others
445
508
KNOEMA
446
509
)
0 commit comments