1
- const { Client } = require ( 'pg' ) . native ;
1
+ const client = require ( '../../helpers/pg-client' ) ;
2
2
const jsonapiHelper = require ( '../../helpers/jsonapi' ) ;
3
3
const jsonStat = require ( '../../helpers/json-stat' ) ;
4
4
const sdmx = require ( '../../helpers/sdmx' ) ;
@@ -41,41 +41,44 @@ function format(indicator, urlResolver) {
41
41
42
42
module . exports = {
43
43
list : async function ( start , count , urlResolver = defaultUrlResolver ) {
44
- const client = new Client ( ) ;
45
44
return new Promise ( async ( resolve , reject ) => {
46
- await client . connect ( ) . catch ( reject ) ;
47
- const [ res , countRes ] = await Promise . all ( [
48
- client . query ( listQuery , [ count , start ] ) ,
49
- client . query ( countQuery )
50
- ] ) . catch ( reject ) ;
51
- client . end ( ) ;
52
- resolve ( {
53
- length : parseInt ( countRes . rows [ 0 ] . count , 10 ) ,
54
- list : res . rows . map ( ( o ) => {
55
- return format ( o , urlResolver ) ;
56
- } )
57
- } ) ;
45
+ try {
46
+ const [ res , countRes ] = await client . query (
47
+ [ listQuery , count , start ] ,
48
+ countQuery
49
+ ) ;
50
+ resolve ( {
51
+ length : parseInt ( countRes . rows [ 0 ] . count , 10 ) ,
52
+ list : res . rows . map ( ( o ) => {
53
+ return format ( o , urlResolver ) ;
54
+ } )
55
+ } ) ;
56
+ } catch ( e ) {
57
+ reject ( e ) ;
58
+ }
58
59
} ) ;
59
60
} ,
60
61
isValid : function ( id ) {
61
62
return indicatorIdValidation . test ( id ) ;
62
63
} ,
63
64
exists : async function ( id ) {
64
- const client = new Client ( ) ;
65
65
return new Promise ( async ( resolve , reject ) => {
66
- await client . connect ( ) . catch ( reject ) ;
67
- const res = await client . query ( existQuery , [ id ] ) . catch ( reject ) ;
68
- client . end ( ) ;
69
- resolve ( res . rows [ 0 ] . count > 0 ) ;
66
+ try {
67
+ const res = await client . query ( [ existQuery , id ] ) ;
68
+ resolve ( res . rows [ 0 ] . count > 0 ) ;
69
+ } catch ( e ) {
70
+ reject ( e ) ;
71
+ }
70
72
} ) ;
71
73
} ,
72
74
get : async function ( id , urlResolver = defaultUrlResolver ) {
73
- const client = new Client ( ) ;
74
75
return new Promise ( async ( resolve , reject ) => {
75
- await client . connect ( ) . catch ( reject ) ;
76
- const res = await client . query ( getQuery , [ id ] ) . catch ( reject ) ;
77
- client . end ( ) ;
78
- resolve ( res . rowCount > 0 ? format ( res . rows [ 0 ] , urlResolver ) : undefined ) ;
76
+ try {
77
+ const res = await client . query ( [ getQuery , id ] ) ;
78
+ resolve ( res . rowCount > 0 ? format ( res . rows [ 0 ] , urlResolver ) : undefined ) ;
79
+ } catch ( e ) {
80
+ reject ( e ) ;
81
+ }
79
82
} ) ;
80
83
} ,
81
84
listObservations : async function ( id , start , count , urlResolver = defaultUrlResolver , options ) {
@@ -95,15 +98,12 @@ module.exports = {
95
98
} ) ;
96
99
} ,
97
100
getSDMX : async function ( id , urlResolver = defaultUrlResolver , options ) {
98
- const client = new Client ( ) ;
99
101
return new Promise ( async ( resolve , reject ) => {
100
102
let [ indicator , { list} , status ] = await Promise . all ( [
101
103
this . get ( id , urlResolver ) ,
102
104
observations . list ( 0 , null , urlResolver , { indicator : id } ) ,
103
105
new Promise ( async ( resolve , reject ) => {
104
- await client . connect ( ) . catch ( reject ) ;
105
106
const res = await client . query ( getStatus ) . catch ( reject ) ;
106
- client . end ( ) ;
107
107
resolve ( res . rows [ 0 ] . status ) ;
108
108
} )
109
109
] ) . catch ( reject ) ;
0 commit comments