nav2/stubs/api/index.js
Primakov Alexandr Alexandrovich 67fa902c75 createReducer & createAction
2025-01-17 09:22:59 +03:00

53 lines
1.5 KiB
JavaScript

const router = require('express').Router();
const router2 = require('express').Router();
const path = require('node:path')
const fs = require('node:fs')
let stubs = {
users: 'success'
}
const timer = (time) => (req, res, next) => {
setTimeout(next, time)
}
timer.slow = timer(5000)
timer.fast = timer(300)
// router.use(timer.fast)
router.post('/user-rate', (req, res) => {
res.status(500).send({ ok: false })
})
router.use('/admin', router2)
router.get('/users',
(req, res, next) => {
res.status(stubs.users.includes('error') ? 400 : 200).send(require(`../json/users/${stubs.users}.json`))
})
router2.get('/', (req, res) => {
res.send(`
<h2>Users</h2>
<ul>
<li><button onclick="fetch('/api/admin/users/success')" style="background-color: ${stubs.users === 'success' ? 'green' : '#ccc'}">success</button></li>
<li><button onclick="fetch('/api/admin/users/error')" style="background-color: ${stubs.users === 'error' ? 'green' : '#ccc'}">error</button></li>
</ul>
<h2>Users</h2>
<ul>
<li><button onclick="fetch('/api/admin/users/success')" style="background-color: ${stubs.users === 'success' ? 'green' : '#ccc'}">success</button></li>
<li><button onclick="fetch('/api/admin/users/error')" style="background-color: ${stubs.users === 'error' ? 'green' : '#ccc'}">error</button></li>
</ul>
`)
})
router2.get('/:stubName/:value', (req, res) => {
const { stubName, value } = req.params
stubs[stubName] = value
})
module.exports = router;