-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
126 lines (113 loc) · 3.92 KB
/
Copy pathindex.js
File metadata and controls
126 lines (113 loc) · 3.92 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
const bodyParser = require('body-parser');
const express = require('express')
const mysql = require('mysql')
const cors = require('cors')
require('dotenv').config()
//hola
const connection = mysql.createConnection({
host:process.env.DB_HOST,
user:process.env.DB_USER,
password:process.env.DB_PASSWORD,
database:process.env.DB_DATABASE
})
connection.connect()
connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {
if (error) throw error;
console.log('Database Server is running!');
});
const app = express()
const port = 3000
app.use(cors())
app.use(bodyParser.urlencoded({extended:false}))
app.use(bodyParser.json())
//ruta para traernos a todos los usuarios
app.get('/users',(req,res)=>{
const sql = 'SELECT * FROM users'
connection.query(sql,(err,result)=>{
if(err) throw err
if(result.length>0) res.json(result)
else res.send('there is no registers in the table')
})
})
//ruta para traernos a todos los posts
app.get('/posts',(req,res)=>{
const sql = `SELECT posts.id as post_id,users.id as user_id,UserName,qualification,createdAt,score,workflow,coverImage FROM posts
JOIN users
ON posts.user_id = users.id`
connection.query(sql,(err,result)=>{
if(err) throw err
if(result.length>0) res.json(result)
else res.send('there is no registers in the table')
})
})
//ruta para crear un nuevo post
app.post('/posts',(req,res)=>{
const sql = 'INSERT INTO posts SET ?'
const body = req.body
connection.query(sql,body,err=>{
if(err) throw err
console.log('post created succesfully')
res.send('post created succesfully')
})
})
//ruta para actualizar un post
app.patch('/posts/:id',(req,res)=>{
const {id} = req.params
const { user_id, score, workflow, createdAt, coverImage} = req.body
console.log(req.body)
const sql = `UPDATE posts SET user_id = '${String(user_id)}', score = '${String(score)}', workflow= '${workflow}', createdAt='${createdAt}', coverImage='${coverImage}' WHERE id=${id} `
connection.query(sql,(err,result)=>{
if(err) throw err
res.json('post updated succesfully')
})
})
//ruta para eliminar un post
app.delete('/posts/:id',(req,res)=>{
const {id} = req.params
const sql_users_posts = `DELETE FROM users_posts WHERE post_id=${id}`
const sql_posts = `DELETE FROM posts WHERE id = ${id}`
connection.query(sql_users_posts,(err,result)=>{
if(err) throw err
})
connection.query(sql_posts,(err,result)=>{
if(err) throw err
res.json('post deleted succesfully')
})
})
//ruta para traernos los usuarios asignados a un post especifico
app.get('/posts/:id/assignees',(req,res)=>{
const {id} = req.params
const sql = `SELECT UserName FROM users_posts
JOIN users
ON users_posts.user_id = users.id
WHERE users_posts.post_id = ${id}
`
connection.query(sql,(err,result)=>{
if(err) throw err
console.log(result)
res.json(result)
})
})
//ruta para agregar un usuario a un post especifico
app.post('/assignees/:user_id/:post_id',(req,res)=>{
const {user_id,post_id} = req.params
const sql = `INSERT INTO users_posts (user_id,post_id) VALUES (${user_id},${post_id}) `
connection.query(sql,(err,result)=>{
if(err) throw err
console.log(result)
res.json(result)
})
})
//ruta para eliminar un usuario en un post especifio
app.delete('/assignees/:user_id/:post_id',(req,res)=>{
const {user_id,post_id} = req.params
const sql = `DELETE FROM users_posts WHERE post_id=${post_id} AND user_id=${user_id}`
connection.query(sql,(err,result)=>{
if(err) throw err
console.log(result)
res.json(result)
})
})
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`)
})