add basic settings endpoints
This commit is contained in:
parent
406b55a21b
commit
9fad64a9ef
@ -14,9 +14,11 @@ CREATE TABLE `users` (
|
|||||||
`User_Avatar` varchar(100) DEFAULT NULL,
|
`User_Avatar` varchar(100) DEFAULT NULL,
|
||||||
`User_PublicKey` varchar(830) DEFAULT NULL,
|
`User_PublicKey` varchar(830) DEFAULT NULL,
|
||||||
`User_PrivateKey` text,
|
`User_PrivateKey` text,
|
||||||
|
`User_Settings` json NOT NULL,
|
||||||
PRIMARY KEY (`User_ID`,`User_Name`),
|
PRIMARY KEY (`User_ID`,`User_Name`),
|
||||||
UNIQUE KEY `User_Name_UNIQUE` (`User_Name`)
|
UNIQUE KEY `User_Name_UNIQUE` (`User_Name`)
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
) ENGINE=InnoDB AUTO_INCREMENT=62 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CREATE TABLE `posts` (
|
CREATE TABLE `posts` (
|
||||||
|
@ -24,13 +24,14 @@ module.exports = {
|
|||||||
//basically we generate the unsigned cookie
|
//basically we generate the unsigned cookie
|
||||||
res.locals.isbot = true //only bots use user+pass
|
res.locals.isbot = true //only bots use user+pass
|
||||||
}
|
}
|
||||||
let sql = `select User_Name,User_Bio,User_Avatar from ipost.users where User_Name=? and User_PW=?;`
|
let sql = `select User_Name,User_Bio,User_Avatar,User_Settings from ipost.users where User_Name=? and User_PW=?;`
|
||||||
let values = unsigned.split(" ")
|
let values = unsigned.split(" ")
|
||||||
values[1] = SHA.SHA256(values[1],values[0],HASHES_DIFF)
|
values[1] = SHA.SHA256(values[1],values[0],HASHES_DIFF)
|
||||||
res.locals.bio = ""
|
res.locals.bio = ""
|
||||||
res.locals.avatar = ""
|
res.locals.avatar = ""
|
||||||
res.locals.publicKey = ""
|
res.locals.publicKey = ""
|
||||||
res.locals.privateKey = ""
|
res.locals.privateKey = ""
|
||||||
|
res.locals.settings = {}
|
||||||
con.query(sql, values, function (err, result) {
|
con.query(sql, values, function (err, result) {
|
||||||
if (err) throw err;
|
if (err) throw err;
|
||||||
if(result[0] && result[0].User_Name && result[0].User_Name == values[0]) {
|
if(result[0] && result[0].User_Name && result[0].User_Name == values[0]) {
|
||||||
@ -39,6 +40,7 @@ module.exports = {
|
|||||||
res.locals.avatar = result[0].User_Avatar || ""
|
res.locals.avatar = result[0].User_Avatar || ""
|
||||||
res.locals.publicKey = result[0].User_PublicKey || ""
|
res.locals.publicKey = result[0].User_PublicKey || ""
|
||||||
res.locals.privateKey = result[0].User_PrivateKey || ""
|
res.locals.privateKey = result[0].User_PrivateKey || ""
|
||||||
|
res.locals.settings = result[0].User_Settings || {}
|
||||||
next()
|
next()
|
||||||
} else {
|
} else {
|
||||||
res.status(400)
|
res.status(400)
|
||||||
|
@ -1,38 +1,57 @@
|
|||||||
|
function allowAllTraffic(router,str,type) {
|
||||||
|
router.options(str,async function(req,res,next) {
|
||||||
|
res.set("Access-Control-Allow-Origin","*") //we'll allow it for now
|
||||||
|
res.set("Access-Control-Allow-Methods",type || "GET")
|
||||||
|
res.set("Access-Control-Allow-Headers","Content-Type")
|
||||||
|
res.status(200).send("")
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
"setup": function(router,con,server) {
|
"setup": function(router,con,server) {
|
||||||
router.options("/api/pid",async function(req,res,next) {
|
// router.options("/api/pid",async function(req,res,next) {
|
||||||
res.set("Access-Control-Allow-Origin","*") //we'll allow it for now
|
// res.set("Access-Control-Allow-Origin","*") //we'll allow it for now
|
||||||
res.set("Access-Control-Allow-Methods","GET")
|
// res.set("Access-Control-Allow-Methods","GET")
|
||||||
res.set("Access-Control-Allow-Headers","Content-Type")
|
// res.set("Access-Control-Allow-Headers","Content-Type")
|
||||||
res.status(200).send("")
|
// res.status(200).send("")
|
||||||
})
|
// })
|
||||||
|
|
||||||
router.options("/api/post",async function(req,res,next) {
|
// router.options("/api/post",async function(req,res,next) {
|
||||||
res.set("Access-Control-Allow-Origin","*") //we'll allow it for now
|
// res.set("Access-Control-Allow-Origin","*") //we'll allow it for now
|
||||||
res.set("Access-Control-Allow-Methods","POST")
|
// res.set("Access-Control-Allow-Methods","POST")
|
||||||
res.set("Access-Control-Allow-Headers","Content-Type")
|
// res.set("Access-Control-Allow-Headers","Content-Type")
|
||||||
res.status(200).send("")
|
// res.status(200).send("")
|
||||||
})
|
// })
|
||||||
|
|
||||||
router.options("/api/getotheruser",async function(req,res,next) {
|
// router.options("/api/getotheruser",async function(req,res,next) {
|
||||||
res.set("Access-Control-Allow-Origin","*") //we'll allow it for now
|
// res.set("Access-Control-Allow-Origin","*") //we'll allow it for now
|
||||||
res.set("Access-Control-Allow-Methods","GET")
|
// res.set("Access-Control-Allow-Methods","GET")
|
||||||
res.set("Access-Control-Allow-Headers","Content-Type")
|
// res.set("Access-Control-Allow-Headers","Content-Type")
|
||||||
res.status(200).send("")
|
// res.status(200).send("")
|
||||||
})
|
// })
|
||||||
|
|
||||||
|
// router.options("/api/getPost",async function(req,res,next) {
|
||||||
|
// res.set("Access-Control-Allow-Origin","*") //we'll allow it for now
|
||||||
|
// res.set("Access-Control-Allow-Methods","GET")
|
||||||
|
// res.set("Access-Control-Allow-Headers","Content-Type")
|
||||||
|
// res.status(200).send("")
|
||||||
|
// })
|
||||||
|
//
|
||||||
|
// router.options("/api/getPostsLowerThan",async function(req,res,next) {
|
||||||
|
// res.set("Access-Control-Allow-Origin","*") //we'll allow it for now
|
||||||
|
// res.set("Access-Control-Allow-Methods","GET")
|
||||||
|
// res.set("Access-Control-Allow-Headers","Content-Type")
|
||||||
|
// res.status(200).send("")
|
||||||
|
// })
|
||||||
|
|
||||||
|
allowAllTraffic("/api/pid")
|
||||||
|
allowAllTraffic("/api/post","POST")
|
||||||
|
allowAllTraffic("/api/getotheruser")
|
||||||
|
allowAllTraffic("/api/getPost")
|
||||||
|
allowAllTraffic("/api/getPostsLowerThan")
|
||||||
|
allowAllTraffic("/api/settings")
|
||||||
|
allowAllTraffic("/api/settings","POST")
|
||||||
|
|
||||||
router.options("/api/getPost",async function(req,res,next) {
|
|
||||||
res.set("Access-Control-Allow-Origin","*") //we'll allow it for now
|
|
||||||
res.set("Access-Control-Allow-Methods","GET")
|
|
||||||
res.set("Access-Control-Allow-Headers","Content-Type")
|
|
||||||
res.status(200).send("")
|
|
||||||
})
|
|
||||||
|
|
||||||
router.options("/api/getPostsLowerThan",async function(req,res,next) {
|
|
||||||
res.set("Access-Control-Allow-Origin","*") //we'll allow it for now
|
|
||||||
res.set("Access-Control-Allow-Methods","GET")
|
|
||||||
res.set("Access-Control-Allow-Headers","Content-Type")
|
|
||||||
res.status(200).send("")
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
38
routes/api/settingshandler.js
Normal file
38
routes/api/settingshandler.js
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
module.exports = {
|
||||||
|
"setup": function(router,con,server) {
|
||||||
|
router.get("/api/settings",function(req,res) {
|
||||||
|
res.json(res.locals.settings)
|
||||||
|
})
|
||||||
|
|
||||||
|
router.post("/api/settings",function(req,res) {
|
||||||
|
|
||||||
|
if(!req.body.setting) {
|
||||||
|
res.json({"error":"no setting to change"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if((typeof req.body.setting) != "string") {
|
||||||
|
res.json({"error":"no setting to change"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if((typeof req.body.value) != "string") {
|
||||||
|
res.json({"error":"no new setting value given"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
let setting_to_change = req.body.setting
|
||||||
|
let setting_new_value = req.body.value
|
||||||
|
|
||||||
|
res.locals.settings[setting_to_change] = setting_new_value
|
||||||
|
|
||||||
|
let sql = "update users set User_Settings=? where User_Name=?"
|
||||||
|
let values = [res.locals.settings,res.locals.username]
|
||||||
|
con.query(sql, values, function (err, result) {
|
||||||
|
if(err) {
|
||||||
|
res.json({"status":"error","code":err})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
res.json({"status":"success"})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
@ -413,6 +413,11 @@ options.setup(router,con,commonfunctions)
|
|||||||
let apiALL = require("./routes/api/all.js")
|
let apiALL = require("./routes/api/all.js")
|
||||||
apiALL.setup(router,con,commonfunctions)
|
apiALL.setup(router,con,commonfunctions)
|
||||||
|
|
||||||
|
let settingshandler = require("./routes/api/settingshandler.js")
|
||||||
|
settingshandler.setup(router,con,commonfunctions)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//TODO: loop through all files and load them in
|
//TODO: loop through all files and load them in
|
||||||
|
|
||||||
router.get("/api/search", async function(req,res) {
|
router.get("/api/search", async function(req,res) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user