43 lines
1.1 KiB
TypeScript
43 lines
1.1 KiB
TypeScript
import { RequestHandler } from 'express'
|
|
import { Result, validationResult } from 'express-validator'
|
|
import http from 'http'
|
|
import https from 'https'
|
|
|
|
export function GetRequest(url: string) {
|
|
return new Promise<string>((resolve, reject) => {
|
|
let handler = (resp: http.IncomingMessage) => {
|
|
let data = ''
|
|
|
|
// A chunk of data has been received.
|
|
resp.on('data', (chunk) => {
|
|
data += chunk
|
|
})
|
|
|
|
// The whole response has been received. Print out the result.
|
|
resp.on('end', () => {
|
|
resolve(data)
|
|
})
|
|
}
|
|
let req
|
|
if (url.startsWith('https')) {
|
|
req = https.get(url, handler)
|
|
} else {
|
|
req = http.get(url, handler)
|
|
}
|
|
req
|
|
.on('error', (err) => {
|
|
reject(err)
|
|
})
|
|
.end()
|
|
})
|
|
}
|
|
|
|
export const validateErrors: RequestHandler = (req, res, next) => {
|
|
const errors = validationResult(req)
|
|
if (!errors.isEmpty()) {
|
|
console.error(JSON.stringify(errors), 'body', req.body, 'query', req.params)
|
|
return res.status(400).json({ errors: errors.array() })
|
|
}
|
|
next()
|
|
}
|