jschan - Anonymous imageboard software. Classic look, modern features and feel. Works without JavaScript and supports Tor, I2P, Lokinet, etc.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

44 lines
891 B

'use strict';
const { Boards } = require(__dirname+'/../../db/')
, { boardDefaults } = require(__dirname+'/../../configs/main.json');
module.exports = async (req, res, next) => {
const { name, description } = req.body
, uri = req.body.uri.toLowerCase()
, tags = req.body.tags.split('\n')
, board = await Boards.findOne(uri);
// if board exists reject
if (board != null) {
return res.status(409).render('message', {
'title': 'Conflict',
'message': 'Board with this URI already exists',
'redirect': '/create.html'
});
}
//todo: add a settings for defaults
const newBoard = {
'_id': uri,
'owner': req.session.user.username,
'banners': [],
'sequence_value': 1,
'pph': 0,
'settings': {
name,
description,
tags,
'moderators': [],
...boardDefaults
}
}
await Boards.insertOne(newBoard);
return res.redirect(`/${uri}/index.html`);
}