-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpublication.js
133 lines (107 loc) · 3.33 KB
/
publication.js
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
const Publication = require("../models/publication")
// Acciones de prueba
const pruebaPublication = (req, res) => {
return res.status(200).send({
message: "Mensaje enviado desde: controllers/publication.js"
});
}
// Guardar Publicaciones
const save = async (req, res) => {
try {
// Recoger datos
const params = req.body;
// Si no llegan, dar respuesta negativa
if (!params.text) {
return res.status(400).send({
status: "error",
message: "Debes enviar el texto de la publicación"
});
}
// Crear y rellenar el objeto
let newPublication = new Publication(params);
newPublication.user = req.user.id;
// Guardar objeto en la bbdd usando async/await
const publicationStored = await newPublication.save();
if (!publicationStored) {
return res.status(400).send({
status: "error",
message: "No se ha guardado la publicación"
});
}
return res.status(200).send({
status: "success",
message: "Publicación guardada",
publicationStored
});
} catch (error) {
return res.status(500).send({
status: "error",
message: "Error al guardar la publicación en la base de datos"
});
}
}
// Sacar una sola publicaciones
const detail = async (req, res) => {
try {
// Sacar id de publicacion
const publicationId = req.params.id;
// Utilizar async/await para esperar la respuesta de la consulta
const publicationStored = await Publication.findById(publicationId);
if (!publicationStored) {
return res.status(404).send({
status: "error",
message: "No existe la publicacion"
});
}
return res.status(200).send({
status: "success",
message: "Mostrar publicacion",
publication: publicationStored
});
} catch (error) {
console.error(error);
return res.status(500).send({
status: "error",
message: "Error interno del servidor"
});
}
};
// Eliminar publicaciones
const remove = async (req, res) => {
try {
const publicationId = req.params.id;
const query = Publication.findOneAndDelete({ "user": req.user.id, "_id": publicationId });
const deletedPost = await query.exec();
if (!deletedPost) {
console.log('No existe el post');
return res.status(404).send({
status: "error",
message: "No existe el post"
});
}
console.log('Post borrado con éxito:', deletedPost);
return res.status(200).send({
status: "success",
message: "Post borrado con éxito",
user: req.user.name,
deletedPost
});
} catch (error) {
console.error(error);
return res.status(500).send({
status: "error",
message: "Error interno del servidor"
});
}
};
// Listas publicaciones
// Listar publicaciones de un usuario
// Eliminar publicaciones
// Subir ficheros
// Devolver archivos multimedia
module.exports = {
pruebaPublication,
save,
detail,
remove
}