const express = require('express')
const fs = require('fs')
const http = require('http')
const https = require('https')
const security = require('../../index')



const app = express()

app.use(security({
  onlyDefinedRoutes: true,
  definedRoutes: ['/', 'REGEX:\\/id\\/\\d{1,}']
}))

app.get('/', function (req, res) {
  res.send('Hello World!')
})

app.get('/id/:id', function (req, res) {
  res.send('Hello numerical id: ' + req.params.id)
})

try {
  fs.accessSync(__dirname + '/private.key')
  var privateKey  = fs.readFileSync(__dirname + '/private.key', 'utf8')
  var certificate = fs.readFileSync(__dirname + '/certificate.crt', 'utf8')
  var credentials = {key: privateKey, cert: certificate}

  var httpsServer = https.createServer(credentials, app)
  httpsServer.listen(8443, () => {
    console.log('Secure Example app listening on port 8443 via HTTPS!')
  })
} catch (error) {
  console.log('HTTPS-Server not running')
}


var httpServer = http.createServer(app)

httpServer.listen(8080, () => {
  console.log('Secure Example app listening on port 8080 via HTTP!')
})