Skip to content

Commit eb8711e

Browse files
committed
before lunch merge
2 parents 5e5cb7a + a290aa3 commit eb8711e

9 files changed

Lines changed: 53 additions & 19 deletions

File tree

controllers/kataCtrl.js

Lines changed: 33 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -66,33 +66,51 @@ module.exports = {
6666
},
6767

6868
voteKata: (req, res, next) => {
69-
db.create.kata_likes([req.body.userid, req.body.kataid, req.body.vote], (err, rating) => {
69+
db.read.check_kata_vote([req.body.userid, req.body.kataid], (err, data) => {
7070
if (err) return next(err);
71-
db.read.get_kata_likes([req.body.kataid], (err, likes) => {
71+
if (data.length > 0) {
72+
db.update.change_kata_vote([req.body.userid, req.body.kataid, req.body.vote], (err, change) => {
73+
if (err) return next(err);
74+
})
75+
} else {
76+
db.create.kata_likes([req.body.userid, req.body.kataid, req.body.vote], (err, rating) => {
77+
if (err) return next(err);
78+
})
79+
}
80+
})
81+
db.read.get_kata_likes([req.body.kataid], (err, likes) => {
82+
if (err) return next(err);
83+
db.read.get_kata_dislikes([req.body.kataid], (err, dislikes) => {
7284
if (err) return next(err);
73-
db.read.get_kata_dislikes([req.body.kataid], (err, dislikes) => {
85+
db.read.get_kata_votes([req.body.kataid], (err, votes) => {
7486
if (err) return next(err);
75-
db.read.get_kata_votes([req.body.kataid], (err, votes) => {
76-
if (err) return next(err);
77-
return res.status(200).json({likes: likes[0].likes, dislikes: dislikes[0].dislikes, votes: votes[0].votes});
78-
})
87+
return res.status(200).json({likes: likes[0].likes, dislikes: dislikes[0].dislikes, votes: votes[0].votes});
7988
})
8089
})
8190
})
8291
},
8392

8493
voteSolution: (req, res, next) => {
85-
db.create.solution_likes([req.body.userid, req.body.solutionid, req.body.vote], (err, rating) => {
94+
db.read.check_solution_vote([req.body.userid, req.body.solutionid], (err, data) => {
8695
if (err) return next(err);
87-
db.read.get_solution_likes([req.body.solutionid], (err, likes) => {
96+
if (data.length > 0) {
97+
db.update.change_solution_vote([req.body.userid, req.body.solutionid, req.body.vote], (err, change) => {
98+
if (err) return next(err);
99+
})
100+
} else {
101+
db.create.solution_likes([req.body.userid, req.body.solutionid, req.body.vote], (err, rating) => {
102+
if (err) return next(err);
103+
})
104+
}
105+
})
106+
db.read.get_solution_likes([req.body.solutionid], (err, likes) => {
107+
if (err) return next(err);
108+
db.read.get_solution_dislikes([req.body.solutionid], (err, dislikes) => {
88109
if (err) return next(err);
89-
db.read.get_solution_dislikes([req.body.solutionid], (err, dislikes) => {
110+
db.read.get_solution_votes([req.body.solutionid], (err, votes) => {
90111
if (err) return next(err);
91-
db.read.get_solution_votes([req.body.solutionid], (err, votes) => {
92-
if (err) return next(err);
93-
return res.status(200).json({likes: likes[0].likes, dislikes: dislikes[0].dislikes, votes: votes[0].votes});
94-
})
95-
})
112+
return res.status(200).json({likes: likes[0].likes, dislikes: dislikes[0].dislikes, votes: votes[0].votes});
113+
})
96114
})
97115
})
98116
},

db/create/kata_likes.sql

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
INSERT INTO kata_ratings (user_id, kata_id, liked) VALUES ($1, $2, $3);
1+
INSERT INTO kata_ratings (user_id, kata_id, liked)
2+
VALUES ($1, $2, $3);

db/create/solution_likes.sql

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,8 @@
1-
INSERT INTO sol_ratings (user_id, solution_id, liked) VALUES ($1, $2, $3);
1+
INSERT INTO sol_ratings (user_id, solution_id, liked)
2+
VALUES ($1, $2, $3);
3+
4+
5+
6+
7+
8+

db/read/check_kata_vote.sql

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
SELECT * FROM kata_ratings
2+
WHERE user_id = $1 AND kata_id = $2;

db/read/check_solution_vote.sql

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
SELECT * FROM sol_ratings
2+
WHERE user_id = $1 AND solution_id = $2;

db/update/change_kata_vote.sql

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
UPDATE kata_ratings SET liked = $3
2+
WHERE user_id = $1 AND kata_id = $2;

db/update/change_solution_vote.sql

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
UPDATE sol_ratings SET liked = $3
2+
WHERE user_id = $1 AND solution_id = $2;

server.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ app.post('/api/test/suite/:kataid', testCtrl.testKata);
105105
app.post('/api/test/examples', testCtrl.testExamplesKata);
106106
app.post('/api/submit-answer/:kataid', kataCtrl.sumbitAnswer);
107107
app.post('/api/kata-by-name', kataCtrl.searchByKatasName);
108-
app.post('/api/kata-votes/:kataid', kataCtrl.voteKata);
108+
app.post('/api/kata-votes', kataCtrl.voteKata);
109109
app.post('/api/solution-votes', kataCtrl.voteSolution);
110110

111111
app.put('/api/points', kataCtrl.addPointsToUser);

src/components/mainService.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ angular.module('app').service('mainService', function($http, $q, $sce, $state) {
5757
this.voteKata = (userid, kataid, vote) => {
5858
return $http({
5959
method: 'POST',
60-
url: `/api/kata-votes/` + kataid,
60+
url: `/api/kata-votes`,
6161
data: {
6262
userid: userid,
6363
kataid: kataid,

0 commit comments

Comments
 (0)