'use strict'
/* Require modules. */
const express = require('express')
/* Set constants. */
const HOST = '127.0.0.1'
const PORT = process.env.PORT || 3000
/* Initialize application. */
const app = express()
/* Initialize JSON parser. */
app.use(express.json())
/* Initialize URL parser. */
app.use(express.urlencoded({ extended: true }))
/* Configure application. */
app.use(function (req, res, next) {
/* Initialize headers. */
res.header('Access-Control-Allow-Origin', '*')
res.header('Access-Control-Allow-Headers', 'content-type') // superagent "case-sensitive" bug??
// res.header('Access-Control-Allow-Headers', 'X-APECS-Address, X-APECS-Signature')
/* Move to next process. */
next()
})
// TODO: Replace with a "static" site.
app.get('/', (req, res) => {
res.end('
Welcome to the APECS.cash API
')
})
/*******************************************************************************
* (CashID) AUTH Endpoint
*/
// app.post('/v1/cashid', require('./handlers/auth'))
/*******************************************************************************
* PROJECTS Endpoint
*/
app.get('/v1/projects', require('./handlers/projects'))
/*******************************************************************************
* Sessions Endpoint
*/
app.post('/v1/sessions', require('./handlers/sessions'))
/*******************************************************************************
* Solidity Compiler
*/
app.post('/v1/solc', require('./handlers/solc'))
/* Start listening for connections. */
app.listen(PORT, HOST)
/* Display current environment variables. */
console.info()
console.log(`Running on http://${HOST}:${PORT}`)
console.info()
console.info('Current Environment Variables')
console.info('-----------------------------')
console.info(' - NODE_ENV :', process.env.NODE_ENV)
console.info(' - API_ENDPOINT :', process.env.API_ENDPOINT)
console.info(' - SLACK_BOT_TOKEN :', process.env.SLACK_BOT_TOKEN)
console.info()