2017-06-10 22:15:25 +02:00
|
|
|
import 'express-validator'
|
|
|
|
import * as express from 'express'
|
|
|
|
|
2017-05-22 20:58:25 +02:00
|
|
|
import { REMOTE_SCHEME } from '../initializers'
|
2016-10-01 14:23:50 +02:00
|
|
|
|
2017-06-10 22:15:25 +02:00
|
|
|
function setBodyHostsPort (req: express.Request, res: express.Response, next: express.NextFunction) {
|
2017-01-27 11:55:31 +01:00
|
|
|
if (!req.body.hosts) return next()
|
|
|
|
|
2016-11-14 20:03:04 +01:00
|
|
|
for (let i = 0; i < req.body.hosts.length; i++) {
|
|
|
|
const hostWithPort = getHostWithPort(req.body.hosts[i])
|
2016-10-01 14:23:50 +02:00
|
|
|
|
|
|
|
// Problem with the url parsing?
|
2016-11-14 20:03:04 +01:00
|
|
|
if (hostWithPort === null) {
|
2016-10-01 14:23:50 +02:00
|
|
|
return res.sendStatus(500)
|
|
|
|
}
|
|
|
|
|
2016-11-14 20:03:04 +01:00
|
|
|
req.body.hosts[i] = hostWithPort
|
2016-10-01 14:23:50 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
return next()
|
|
|
|
}
|
|
|
|
|
2017-06-10 22:15:25 +02:00
|
|
|
function setBodyHostPort (req: express.Request, res: express.Response, next: express.NextFunction) {
|
2017-01-27 11:55:31 +01:00
|
|
|
if (!req.body.host) return next()
|
|
|
|
|
2016-11-14 20:03:04 +01:00
|
|
|
const hostWithPort = getHostWithPort(req.body.host)
|
2016-10-01 14:23:50 +02:00
|
|
|
|
|
|
|
// Problem with the url parsing?
|
2016-11-14 20:03:04 +01:00
|
|
|
if (hostWithPort === null) {
|
2016-10-01 14:23:50 +02:00
|
|
|
return res.sendStatus(500)
|
|
|
|
}
|
|
|
|
|
2016-11-14 20:03:04 +01:00
|
|
|
req.body.host = hostWithPort
|
2016-10-01 14:23:50 +02:00
|
|
|
|
|
|
|
return next()
|
|
|
|
}
|
|
|
|
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
|
2017-05-15 22:22:03 +02:00
|
|
|
export {
|
|
|
|
setBodyHostsPort,
|
|
|
|
setBodyHostPort
|
|
|
|
}
|
2016-10-01 14:23:50 +02:00
|
|
|
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
|
2017-06-10 22:15:25 +02:00
|
|
|
function getHostWithPort (host: string) {
|
2016-11-14 20:03:04 +01:00
|
|
|
const splitted = host.split(':')
|
|
|
|
|
|
|
|
// The port was not specified
|
|
|
|
if (splitted.length === 1) {
|
2017-05-22 20:58:25 +02:00
|
|
|
if (REMOTE_SCHEME.HTTP === 'https') return host + ':443'
|
2016-11-14 20:03:04 +01:00
|
|
|
|
|
|
|
return host + ':80'
|
2016-10-01 14:23:50 +02:00
|
|
|
}
|
|
|
|
|
2016-11-14 20:03:04 +01:00
|
|
|
return host
|
2016-10-01 14:23:50 +02:00
|
|
|
}
|