mirror of
https://github.com/Akif9748/akf-forum.git
synced 2024-11-29 14:10:41 +03:00
Added message post to api
This commit is contained in:
parent
6beeddd17e
commit
6b446d1b57
5 changed files with 76 additions and 9 deletions
|
@ -78,6 +78,22 @@ app.get("/message/:id", (req, res) => {
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
app.post("/message/", (req, res) => {
|
||||||
|
|
||||||
|
const error = (status, error) =>
|
||||||
|
res.status(status).json(new ApiResponse(status, { error }));
|
||||||
|
const { threadID = null, content = null } = req.body;
|
||||||
|
const thread = new Thread().getId(threadID);
|
||||||
|
if (!req.body.content) return error(400, "Missing message content in request body.");
|
||||||
|
if (!thread) return error(404, "We have not got this thread.");
|
||||||
|
|
||||||
|
|
||||||
|
const message = new Message(content, new User().getName(req.headers.username), thread).takeId().write();
|
||||||
|
thread.push(message.id).write();
|
||||||
|
|
||||||
|
res.status(200).json(new ApiResponse(200, message));
|
||||||
|
|
||||||
|
})
|
||||||
app.get("/user/:id", (req, res) => {
|
app.get("/user/:id", (req, res) => {
|
||||||
|
|
||||||
const error = (status, error) =>
|
const error = (status, error) =>
|
||||||
|
|
|
@ -22,7 +22,7 @@ app.post("/", (req, res) => {
|
||||||
error(res, 404, `We have got an user named ${username}!`)
|
error(res, 404, `We have got an user named ${username}!`)
|
||||||
|
|
||||||
else {
|
else {
|
||||||
const user2 = new User(req.body.username, req.body.avatar).takeId()
|
const user2 = new User(req.body.username, req.body.avatar ?? null).takeId()
|
||||||
db.set("secret." + username, { id: user2.id, key: password })
|
db.set("secret." + username, { id: user2.id, key: password })
|
||||||
req.session.loggedin = true;
|
req.session.loggedin = true;
|
||||||
req.session.username = username;
|
req.session.username = username;
|
||||||
|
|
|
@ -19,6 +19,13 @@ app.get("/", (req, res) => {
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
app.get("/open*", (req, res) => {
|
||||||
|
|
||||||
|
const user = new User().getId(req.session.userid)
|
||||||
|
res.render("openThread", { user })
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
app.get("/:id", (req, res) => {
|
app.get("/:id", (req, res) => {
|
||||||
|
|
||||||
const { id } = req.params;
|
const { id } = req.params;
|
||||||
|
@ -34,17 +41,11 @@ app.get("/:id", (req, res) => {
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
app.use(require("../middlewares/login"));
|
app.use(require("../middlewares/login"));
|
||||||
|
|
||||||
|
|
||||||
app.get("/open*", (req, res) => {
|
|
||||||
|
|
||||||
const user = new User().getId(req.session.userid)
|
|
||||||
res.render("openThread", { user })
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
app.post("/", (req, res) => {
|
app.post("/", (req, res) => {
|
||||||
|
|
||||||
const user = new User().getId(req.session.userid);
|
const user = new User().getId(req.session.userid);
|
||||||
|
|
50
tests/postmessage.py
Normal file
50
tests/postmessage.py
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
import requests
|
||||||
|
|
||||||
|
# Headers for login to Akf-forum
|
||||||
|
headers = {
|
||||||
|
"username": "testUser",
|
||||||
|
"password": "testPassword"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Body for message parameters
|
||||||
|
body = {
|
||||||
|
"content": "This message sent via API",
|
||||||
|
"threadID": 1
|
||||||
|
}
|
||||||
|
|
||||||
|
r = requests.post("http://localhost:3000/api/message/",
|
||||||
|
headers=headers, data=body)
|
||||||
|
|
||||||
|
print(r.json())
|
||||||
|
|
||||||
|
example_response = {
|
||||||
|
'status': 200,
|
||||||
|
'result': {
|
||||||
|
'content': 'This message sent via API',
|
||||||
|
'author': {
|
||||||
|
'name': 'testUser',
|
||||||
|
'avatar': '',
|
||||||
|
'time': 1649009854217,
|
||||||
|
'admin': False,
|
||||||
|
'deleted': False,
|
||||||
|
'id': 2
|
||||||
|
},
|
||||||
|
'time': 1649010863471,
|
||||||
|
'thread': {
|
||||||
|
'author': {
|
||||||
|
'name': 'Akif9748',
|
||||||
|
'avatar': 'https://www.technopat.net/sosyal/data/avatars/o/298/298223.jpg?1644694020',
|
||||||
|
'time': 1647895891332, 'admin': True, 'deleted': False, 'id': 0
|
||||||
|
},
|
||||||
|
'title': 'API TEST',
|
||||||
|
'messages': [4, 6],
|
||||||
|
'time': 1649010834064,
|
||||||
|
'deleted': False,
|
||||||
|
'id': 1
|
||||||
|
},
|
||||||
|
'deleted': False,
|
||||||
|
'edited': False,
|
||||||
|
'react': {},
|
||||||
|
'id': 6
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue