Skip to content

Commit cfecb50

Browse files
committed
version 1
0 parents  commit cfecb50

File tree

3,705 files changed

+482041
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

3,705 files changed

+482041
-0
lines changed

api/app.js

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
'use strict'
2+
3+
var express = require('express');
4+
var bodyParser = require('body-parser');
5+
6+
var app = express();
7+
8+
//cargar rutas
9+
10+
var userRoutes = require('./routes/user')
11+
var followRoutes = require('./routes/follow')
12+
var publicationRoutes = require('./routes/publication')
13+
var messageRoutes = require('./routes/message')
14+
15+
//cargar middlewares
16+
app.use(bodyParser.urlencoded({extended: false}));
17+
app.use(bodyParser.json());
18+
19+
20+
//cors
21+
22+
app.use((req, res, next) => {
23+
res.header('Access-Control-Allow-Origin', '*');
24+
res.header('Access-Control-Allow-Headers', 'Authorization, X-API-KEY, Origin, X-Requested-With, Content-Type, Accept, Access-Control-Allow-Request-Method');
25+
res.header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, DELETE');
26+
res.header('Allow', 'GET, POST, OPTIONS, PUT, DELETE');
27+
28+
next();
29+
});
30+
31+
32+
//rutas
33+
34+
app.use('/api', userRoutes)
35+
app.use('/api', followRoutes)
36+
app.use('/api', publicationRoutes)
37+
app.use('/api', messageRoutes)
38+
39+
//exportar
40+
41+
module.exports = app;

api/controllers/follow.js

Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
'use strict'
2+
3+
var path = require('path');
4+
var fs = require('fs');
5+
var mongoosePaginate = require('mongoose-pagination');
6+
7+
var User = require('../models/user');
8+
var Follow = require('../models/follows');
9+
10+
function saveFollow(req, res){
11+
var params = req.body;
12+
var follow = new Follow();
13+
follow.user = req.user.sub;
14+
follow.followed = params.followed;
15+
16+
follow.save((err, followStored)=>{
17+
if(err) return res.status(500).send({message:'error en guardar el follow'})
18+
19+
if(!followStored) return res.status(404).send({message: 'el seguimiento no se ha guardado'})
20+
21+
return res.status(200).send({follow: followStored})
22+
})
23+
}
24+
25+
function deleteFollow(req, res){
26+
var userId = req.user.sub;
27+
var followId = req.params.id;
28+
29+
Follow.find({'user':userId, 'followed': followId}).remove(err => {
30+
if(err) return res.status(500).send({message:'dejar de seguir'})
31+
})
32+
33+
return res.status(200).send({message: 'el follow se ha eliminado'})
34+
}
35+
36+
function getFollowingUsers(req, res){
37+
var userId = req.user.sub;
38+
39+
if(req.params.id && req.params.page){
40+
userId = req.params.id;
41+
}
42+
43+
var page = 1;
44+
45+
if(req.params.page){
46+
page = req.params.page;
47+
}else{
48+
page = req.params.id;
49+
}
50+
51+
var itemsPrePage = 4;
52+
53+
Follow.find({user: userId}).populate({path:'followed'}).paginate(page, itemsPrePage, (err, follows, total)=>{
54+
if(err) return res.status(500).send({message:'error en el servidor'})
55+
56+
if(!follows) return res.status(404).send({message: 'no estas siguiendo a ningun usuario'})
57+
58+
return res.status(200).send({
59+
total: total,
60+
pages: Math.ceil(total/itemsPrePage),
61+
follows
62+
})
63+
})
64+
}
65+
66+
function getFollowedUser(req, res){
67+
var userId = req.user.sub;
68+
69+
if(req.params.id && req.params.page){
70+
userId = req.params.id;
71+
}
72+
73+
var page = 1;
74+
75+
if(req.params.page){
76+
page = req.params.page;
77+
}else{
78+
page = req.params.id;
79+
}
80+
81+
var itemsPrePage = 4;
82+
83+
Follow.find({followed: userId}).populate('user').paginate(page, itemsPrePage, (err, follows, total)=>{
84+
if(err) return res.status(500).send({message:'error en el servidor'})
85+
86+
if(!follows) return res.status(404).send({message: 'no te sigue ningun usuario'})
87+
88+
return res.status(200).send({
89+
total: total,
90+
pages: Math.ceil(total/itemsPrePage),
91+
follows
92+
})
93+
})
94+
}
95+
96+
//devolver listado de usuarios
97+
function getMyFollows(req, res){
98+
var userId = req.user.sub;
99+
100+
var find = Follow.find({user: userId});
101+
102+
if(req.params.followed){
103+
find = Follow.find({follow: userId});
104+
}
105+
106+
find.populate('user followed').exec((err, follows)=>{
107+
if(err) return res.status(500).send({message:'error en el servidor'})
108+
109+
if(!follows) return res.status(404).send({message: 'no estas siguiendo a ningun usuario'})
110+
111+
return res.status(200).send({follows})
112+
})
113+
}
114+
115+
116+
module.exports = {
117+
saveFollow,
118+
deleteFollow,
119+
getFollowingUsers,
120+
getFollowedUser,
121+
getMyFollows
122+
}

api/controllers/message.js

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
'use strict'
2+
3+
var moment = require('moment');
4+
var mongoosePagination = require('mongoose-pagination');
5+
6+
var User = require('../models/user');
7+
var Follow = require('../models/follows');
8+
var Message = require('../models/message');
9+
10+
function saveMessage(req, res){
11+
var params = req.body;
12+
13+
if(!params.text || !params.receiver){
14+
return res.status(200).send({message: 'envia bien los datos'})
15+
}
16+
17+
var message = new Message();
18+
message.emitter = req.user.sub;
19+
message.receiver = params.receiver;
20+
message.text = params.text;
21+
message.createdAt = moment().unix();
22+
message.viewed = 'false';
23+
24+
message.save((err, messageStored) => {
25+
if(err){
26+
return res.status(500).send({message: 'error en la peticion'})
27+
}
28+
if(!messageStored){
29+
return res.status(500).send({message: 'error al enviar el mensaje'})
30+
}
31+
return res.status(200).send({message: messageStored})
32+
})
33+
}
34+
35+
function getReceivedMessages(req, res){
36+
var userId = req.user.sub;
37+
38+
var page = 1;
39+
if(req.params.page){
40+
page = req.params.page
41+
}
42+
43+
var itemsPrePage = 4;
44+
45+
Message.find({receiver: userId}).populate('emitter', 'name surname _id nick image').paginate(page, itemsPrePage, (err, message, total) => {
46+
if(err){
47+
return res.status(500).send({message: 'error en la peticion'})
48+
}
49+
if(!message){
50+
return res.status(404).send({message: 'no hay mensajes que mostrar'})
51+
}
52+
return res.status(200).send({
53+
total:total,
54+
pages: Math.ceil(total/itemsPrePage),
55+
messages
56+
})
57+
58+
})
59+
}
60+
61+
function getEmittMessages(req, res){
62+
var userId = req.user.sub;
63+
64+
var page = 1;
65+
if(req.params.page){
66+
page = req.params.page
67+
}
68+
69+
var itemsPrePage = 4;
70+
71+
Message.find({emitter: userId}).populate('emitter receiver', 'name surname _id nick image').paginate(page, itemsPrePage, (err, message, total) => {
72+
if(err){
73+
return res.status(500).send({message: 'error en la peticion'})
74+
}
75+
if(!message){
76+
return res.status(404).send({message: 'no hay mensajes que mostrar'})
77+
}
78+
return res.status(200).send({
79+
total:total,
80+
pages: Math.ceil(total/itemsPrePage),
81+
messages
82+
})
83+
84+
})
85+
}
86+
87+
function getUnviewedMessages(req, res){
88+
var userId = req.user.sub;
89+
90+
Message.count({receiver: userId, viewed:'false'}).exec((err, count) => {
91+
if(err){
92+
return res.status(500).send({message: 'error en la peticion'})
93+
}
94+
return res.status(200).send({
95+
unviewed: count
96+
})
97+
})
98+
}
99+
100+
function setViewedMessages(req, res){
101+
var userId = req.user.sub;
102+
103+
Message.update({receiver: userId, viewed: 'false'},{viewed:'true'}, {'multi': true}, (err, messageUpdate) => {
104+
if(err){
105+
return res.status(500).send({message: 'error en la peticion'})
106+
}
107+
return res.status(200).send({
108+
message: messageUpdate
109+
})
110+
})
111+
}
112+
113+
module.exports = {
114+
saveMessage,
115+
getReceivedMessages,
116+
getEmittMessages,
117+
getUnviewedMessages,
118+
setViewedMessages
119+
}

0 commit comments

Comments
 (0)