Adding entries to forum

This commit is contained in:
mrfry 2021-03-05 19:40:22 +01:00
parent 65d4ef3223
commit 661d0dd3e4

View file

@ -73,6 +73,7 @@ const rootRedirectToFile = 'data/apiRootRedirectTo'
const recievedQuestionFile = 'stats/recievedQuestions'
const registeredScriptsFile = 'stats/registeredScripts.json'
const savedQuestionsFileName = 'savedQuestions.json'
const adminUsersFile = 'data/admins.json'
const oldMotdFile = 'publicDirs/qminingPublic/oldMotd'
// other constants
@ -702,6 +703,42 @@ function GetApp(): ModuleType {
logger.Log('New feedback file', logger.GetColor('bluebg'))
})
app.post('/rmPost', (req: Request, res) => {
logger.LogReq(req)
const user: User = req.session.user
const news: any = utils.ReadJSON(newsFile)
const { newsKey } = req.body
if (news[newsKey].user === user.id) {
delete news[newsKey]
} else {
res.json({ status: 'fail', msg: 'u cant delete other users posts!' })
return
}
utils.WriteFile(JSON.stringify(news, null, 2), newsFile)
res.json({ status: 'ok', news: news })
})
app.post('/addPost', (req: Request, res) => {
logger.LogReq(req)
const user: User = req.session.user
const news: any = utils.ReadJSON(newsFile)
const admins: any = utils.ReadJSON(adminUsersFile)
const { title, content } = req.body
news[uuidv4()] = {
title: title,
content: content,
date: new Date().toLocaleString(),
user: user.id,
admin: admins.includes(user),
}
utils.WriteFile(JSON.stringify(news, null, 2), newsFile)
res.json({ status: 'ok', news: news })
})
app.post('/postfeedback', function(req: Request, res: any) {
logger.LogReq(req)
if (req.body.fromLogin) {
@ -1322,10 +1359,6 @@ function GetApp(): ModuleType {
if (news[newsKey].reacts[react].length === 0) {
delete news[newsKey].reacts[react]
}
logger.Log(
`User #${user.id} removed reaction '${react}' from '${newsKey}' `,
logger.GetColor('blue')
)
}
} else {
if (!news[newsKey].reacts) {
@ -1339,14 +1372,13 @@ function GetApp(): ModuleType {
news[newsKey].reacts[react] = [user.id]
}
}
logger.Log(
`User #${user.id} reacted on '${newsKey}' with '${react}'`,
logger.GetColor('blue')
)
}
}
utils.WriteFile(JSON.stringify(news, null, 2), newsFile)
res.json({ msg: 'done', news: news })
return
}
res.json({ msg: 'done' })
@ -1414,18 +1446,20 @@ function GetApp(): ModuleType {
const user: User = req.session.user
const news: any = utils.ReadJSON(newsFile)
const admins: any = utils.ReadJSON(adminUsersFile)
const { type, path, newsKey } = req.body
if (!type || !path || !newsKey) {
res.json({ status: 'fail', msg: ' type or path or newsKey is undefined' })
return
}
if (type === 'add') {
const { text } = req.body
const { content } = req.body
const comment = {
date: new Date().toLocaleString(),
user: user.id,
text: text,
content: content,
admin: admins.includes(user),
}
if (!news[newsKey].comments) {
news[newsKey].comments = []
@ -1446,7 +1480,7 @@ function GetApp(): ModuleType {
res.json({ status: 'fail', msg: 'no such type' })
}
utils.WriteFile(JSON.stringify(news, null, 2), newsFile)
res.json({ status: 'ok', newNews: news })
res.json({ status: 'ok', news: news })
})
app.post('/registerscript', function(req: Request, res) {