forked from Mohammed-radwan/server-deploy
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
134 lines (124 loc) · 3.82 KB
/
index.js
File metadata and controls
134 lines (124 loc) · 3.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
const express = require("express");
const cors =require("cors");
const server =express();
const bodyParser =require("body-parser");
const {connection}= require("./Connection");
const uuidv4 =require("uuid/v4");
const fs =require("fs");
const compression = require("compression");
const helmet = require("helmet");
const SHA256 = require('crypto-js');
const PORT = process.env.PORT||8000;
server.listen(PORT,()=>{
console.log(`Server is running on Localhost: ${PORT}`);
})
server.use(express.static('public'));
server.use(bodyParser.json());
server.use(cors({origin:"http://localhost:3000"}));
server.use(compression());
server.use(helmet());
server.get("/",(request,response)=>{
response.send("We are in the master branch")
})
server.get("/password",(request,response)=>{
const password="password1234";
const hashedPassword =SHA256(password);
console.log({hashedPassword});
})
server.get("/get/jokes",(request,response)=>{
connection.query(`select * from joke `,(error,results)=>{
if(error){
showError(error,response);
}
response.json(results);
})
})
server.post("/update/joke/:vote",(request,response)=>{
const { body } = request;
if(body){
const { id } = body;
if(id){
let sql;
const vote= request.params.vote;
if(vote==="upvote")
sql ="update joke set up_votes =up_votes + 1 where id = ? ";
else
sql ="update joke set down_votes =down_votes + 1 where id = ? ";
let values = [id];
connection.query(sql,values,(error,results)=>{
if(error){
showError(error,response);
}
response.json({status: "succes", message: "joke voted"})
})
}
}
})
function showError(error,response){
console.log(error);
response.json({status:"error",message:"something went wrong "});
}
server.post("/post/joke",(request,response)=>{
const {body}= request;
if(body){
const{title,file} = body;
if(file){
const {base64}=file;
const fileName =uuidv4();
fs.writeFile(`./public/images/${fileName}.jpeg`,base64,'base64',(error)=>{
if(error){
console.log(error);
}
})
const sql = "INSERT into joke set ?";
const values ={
image_location:`http://10.20.0.48:8000/images/${fileName}.jpeg`,
title
}
connection.query(sql,values,(error,result)=>{
if(error) showError(error,response);
response.json({status: "succes", message: "joke uploaded"})
})
}
}
})
//Get a single joke
server.get("/get/joke/:id",(request,response)=>{
const {id}= request.params;
const values=[id];
connection.query(`select * from joke where id =? `,values,(error,results)=>{
if(error){
showError(error,response);
}
response.json(results[0]);
})
});
//Get comments per joke
server.get("/get/comments/:jokeId",(request,response)=>{
const {jokeId} = request.params;
const values = [jokeId];
connection.query(`select * from comment where joke_id=?`,values,(error,results)=>{
if(error)
showError(error.response);
response.json(results);
});
});
//Post a comment
server.post("/post/comment",(request,response)=>{
const {body} = request;
if(body){
const{text,username,joke_id} = body;
const sql ="insert into comment set ?";
const values = {
text,
username,
joke_id
}
connection.query(sql,values,(error,result)=>{
if(error){
showError(error,response);
}
response.json({status: "succes", message: "comment posted"})
});
}
});