import Route from "../route.js"; import initDb from "../db.js"; import auth from "../form/auth.js"; let db = await initDb(); function isValid(user) { return user.search(/[^A-Za-z0-9\-\_]/g) == -1; } let main = new Route([auth], async function (req, res, input) { let { username } = input; let { target } = req.body; if (!isValid(target) || username == '!nobody') return { 'success': false, 'message': 'Some fields are missing' }; let isFollowing = await db.all('SELECT * FROM follow WHERE username = ? AND target = ?', [ username, target ]); if (isFollowing.length > 0) { await db.run('DELETE FROM follow WHERE username = ? AND target = ?', [ username, target ]); res.send({ 'success': true, 'message': 'User unfollowed' }); } else { await db.run('INSERT INTO follow (username,target) VALUES (?,?)', [ username, target ]); res.send({ 'success': true, 'message': 'User followed' }); } }); export default main;