Refactor: move src to folder (#63)
* move all source code to src/ * replace express response patch with middleware * fix readdir not looking in src * fix stray redirect * add base to manifest * remove secret.txt from src/config/secret * add src/config/secret/secret.txt to gitignore
This commit is contained in:
parent
363146c331
commit
0d7d73744c
1569 changed files with 25 additions and 1159 deletions
68
src/routes/index.js
Normal file
68
src/routes/index.js
Normal file
|
@ -0,0 +1,68 @@
|
|||
const publicRoute = require('../middlewares/publicRoute')
|
||||
const express = require('express')
|
||||
const path = require('path')
|
||||
const fs = require('fs/promises')
|
||||
|
||||
module.exports = ({ db, config }) => {
|
||||
async function ensurePfp (username) {
|
||||
if (!config.pfp) return
|
||||
const user = await db.get(username)
|
||||
if (user.pfp) return
|
||||
|
||||
const { rows } = await db.allDocs({ include_docs: true })
|
||||
|
||||
const unfilteredPool = await fs.readdir('src/static/img/default-pfps')
|
||||
const filteredPool = unfilteredPool.filter(file => !rows.find(row => row.doc.pfp === `${_CC.config.base}img/default-pfps/${file}`))
|
||||
const pool = filteredPool.length ? filteredPool : unfilteredPool
|
||||
|
||||
user.pfp = `${_CC.config.base}img/default-pfps/${_CC._.sample(pool)}`
|
||||
await db.put(user)
|
||||
}
|
||||
|
||||
;(async () => {
|
||||
const { rows } = await db.allDocs({ include_docs: true })
|
||||
for (const row of rows) {
|
||||
await ensurePfp(row.id)
|
||||
}
|
||||
})()
|
||||
|
||||
const router = express.Router()
|
||||
|
||||
router.use('/', express.static(path.join(__dirname, '../static')))
|
||||
router.use(require('cookie-parser')())
|
||||
|
||||
router.get('/',
|
||||
async (req, res, next) => {
|
||||
const dbInfo = await db.info()
|
||||
if (dbInfo.doc_count === 0) {
|
||||
res.redirect('/setup')
|
||||
} else {
|
||||
next()
|
||||
}
|
||||
},
|
||||
publicRoute(),
|
||||
(req, res) => {
|
||||
res.redirect('/wishlist')
|
||||
}
|
||||
)
|
||||
|
||||
router.use('/api', require('./api')({ db }))
|
||||
|
||||
router.use('/setup', require('./setup')({ db, ensurePfp }))
|
||||
|
||||
router.use('/login', require('./login')({ ensurePfp }))
|
||||
router.use('/logout', require('./logout')())
|
||||
router.use('/resetpw', require('./resetpw')(db))
|
||||
router.use('/confirm-account', require('./confirm-account')(db))
|
||||
|
||||
router.use('/wishlist', require('./wishlist')(db))
|
||||
router.use('/supported-sites', require('./supported-sites')())
|
||||
|
||||
router.use('/profile', require('./profile')({ db, config, ensurePfp }))
|
||||
|
||||
router.use('/admin-settings', require('./adminSettings')({ db, ensurePfp }))
|
||||
|
||||
router.use('/manifest.json', require('./manifest.json')({ config }))
|
||||
|
||||
return router
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue