UNPKG

@moartube/moartube-node

Version:

A free, open-source, self-hosted, anonymous, decentralized video/live stream platform. Scalable via Cloudflare, works in the cloud or from home WiFi.

77 lines (59 loc) 2.23 kB
const express = require('express'); const { root_GET, search_GET, newContentCounts_GET, contentChecked_POST } = require('../controllers/node'); const { logDebugMessageToConsole } = require('../utils/logger'); const { performAuthenticationCheck } = require('../middleware/authentication'); const router = express.Router(); router.get('/', performAuthenticationCheck(false), async (req, res) => { try { const searchTerm = req.query.searchTerm; const sortTerm = req.query.sortTerm; const tagTerm = req.query.tagTerm; const data = await root_GET(searchTerm, sortTerm, tagTerm); res.render('node', data); } catch (error) { logDebugMessageToConsole(null, error, new Error().stack); res.status(500).send('node page rendering error'); } }); router.get('/search', performAuthenticationCheck(false), async (req, res) => { try { const searchTerm = req.query.searchTerm; const sortTerm = req.query.sortTerm; const tagTerm = req.query.tagTerm; const data = await search_GET(searchTerm, sortTerm, tagTerm); res.send(data); } catch (error) { logDebugMessageToConsole(null, error, new Error().stack); res.send({ isError: true, message: 'error communicating with the MoarTube node' }); } }); router.get('/newContentCounts', performAuthenticationCheck(true), async (req, res) => { try { const data = await newContentCounts_GET(); res.send(data); } catch (error) { logDebugMessageToConsole(null, error, new Error().stack); res.send({ isError: true, message: 'error communicating with the MoarTube node' }); } }); router.post('/contentChecked', performAuthenticationCheck(true), (req, res) => { try { const contentType = req.body.contentType; const data = contentChecked_POST(contentType); res.send(data); } catch (error) { logDebugMessageToConsole(null, error, new Error().stack); res.send({ isError: true, message: 'error communicating with the MoarTube node' }); } }); module.exports = router;