summaryrefslogtreecommitdiff
path: root/index.js
blob: 9ddc5ba071b221f14d448fd140e520f6946e0547 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
var fs = require('fs')
var express = require('express')
var http = require('http')
var path = require('path')
var bodyParser = require('body-parser')
// var multer = require('multer')
// var upload = multer({ dest: 'uploads/' })

var app = new express()
var server = http.createServer(app)

app.disable('x-powered-by')
app.use(bodyParser.json({ limit: '100mb', }))
app.use(bodyParser.urlencoded({ extended: false, limit: '100mb', }))
app.use(express.static(path.join(__dirname, 'public'), { extensions: ['html'] }))
app.use(express.query())

var DATA_DIR = './public/data/'
var DATA_FILE = DATA_DIR + 'order.json'
var dirs = fs.readdirSync(DATA_DIR).map(file => {
  if (file.indexOf('.') === 0 || ! fs.lstatSync(DATA_DIR + file).isDirectory() ) {
    return null
  }
  return file
}).filter(n => !!n)

app.get('/api/list', (req, res) => {
  console.log('/api/list')
  var list = dirs.map(file => {
    return {
      name: file,
      files: fs.readdirSync(DATA_DIR + file).filter(f => f[0] !== '.'),
    }
  })
  res.json({
    order: fs.existsSync(DATA_FILE)
      ? JSON.parse(fs.readFileSync(DATA_FILE).toString('utf-8'))
      : { pairs: [] },
    list,
  })
})

app.post('/api/save', (req, res) => {
  console.log('/api/save')
  // console.log(req.body)
  var data = JSON.stringify(req.body)
  if (data.length > 3) {
    fs.writeFileSync(DATA_FILE, data)
  }
  res.json({status: 'ok' })
})

server.listen(process.env.EXPRESS_PORT || 8000, () => {
  console.log('Wave sort listening on http://localhost:' + server.address().port)
})