coctohug-web
Version:
- Nice localization with support of dozens of languages: [English](https://github.com/raingggg/coctohug/blob/main/readme_en.md), [العربية](https://github.com/raingggg/coctohug/blob/main/readme_ar.md), [Bulgarian](https://github.com/raingggg/coctohug/blob/
83 lines (70 loc) • 2.34 kB
JavaScript
var i18n = require('i18n');
const axios = require('axios');
const express = require('express');
const router = express.Router();
const { logger } = require('../utils/logger');
const { Op } = require("sequelize");
const { Connection, Hand } = require('../models');
const { parseConnecitons } = require('../utils/chiaParser');
const { getWorkerToken } = require('../utils/chiaConfig');
const { getConnectionStyle } = require('../utils/blockUtil');
const UNSYNC_THRESHHOLD = 10 * 60 * 1000; // 10 mins
router.get('/', async (req, res, next) => {
const data = await Connection.findAll({
order: [
['blockchain', 'ASC'],
]
});
data.forEach(dt => {
Object.assign(dt, {
style: getConnectionStyle(dt),
connections: parseConnecitons(dt.details),
});
})
res.render('index', { data, pageName: 'connections' });
});
router.post('/remove', async (req, res, next) => {
try {
const { blockchain, hostname, nodeIds } = req.body;
const data = await Hand.findOne({
where: {
mode: { [Op.in]: ['fullnode', 'farmer', 'standard_wallet'] },
blockchain,
hostname
}
});
if (data) {
const finalUrl = `${data.url}/connectionsWorker/remove`;
await axios.post(finalUrl, { nodeIds }, { headers: { 'tk': getWorkerToken(hostname, blockchain) } }).catch(function (error) {
logger.error('connectionsWorker/remove', finalUrl);
});
return res.json({ status: 'success' });
}
} catch (e) {
logger.error('remove-connection', e);
}
return res.json({ status: 'failed' });
});
router.post('/add', async (req, res, next) => {
try {
const { blockchain, hostname, connections } = req.body;
const data = await Hand.findOne({
where: {
mode: { [Op.in]: ['fullnode', 'farmer', 'standard_wallet'] },
blockchain,
hostname
}
});
if (data) {
const finalUrl = `${data.url}/connectionsWorker/add`;
axios.post(finalUrl, { connections }, { headers: { 'tk': getWorkerToken(hostname, blockchain) } }).catch(function (error) {
logger.error('connectionsWorker/add', finalUrl);
});
return res.json({ status: 'success' });
}
} catch (e) {
logger.error('add-connection', e);
}
return res.json({ status: 'failed' });
});
module.exports = router;