@@ -12,55 +12,97 @@ const {
1212 isEventOrganiser,
1313} = require ( '../../common/middleware/events' )
1414
15+ const votingController = require ( './controller' )
16+
17+ const getProjectsWithVotesForEvent = asyncHandler ( async ( req , res ) => {
18+ const finalistProjectsWithAllVotes =
19+ await votingController . getFinalistProjectsWithAllVotes ( req . event )
20+ return res . status ( 200 ) . json ( finalistProjectsWithAllVotes )
21+ } )
22+
23+ const getVote = asyncHandler ( async ( req , res ) => {
24+ const vote = await WinnerVote . findOne ( {
25+ event : req . event . _id ,
26+ user : req . user . sub ,
27+ } )
28+
29+ return res . status ( 200 ) . json ( vote )
30+ } )
31+
32+ const submitVote = asyncHandler ( async ( req , res ) => {
33+ const vote = await WinnerVote . findOne ( {
34+ event : req . event . _id ,
35+ user : req . user . sub ,
36+ } )
37+ if ( vote ) {
38+ vote . project = req . body . projectId
39+ const result = await vote . save ( )
40+ return res . status ( 200 ) . json ( result )
41+ }
42+ const newVote = new WinnerVote ( {
43+ event : req . event . _id ,
44+ user : req . user . sub ,
45+ project : req . body . projectId ,
46+ } )
47+ const result = await newVote . save ( )
48+ return res . status ( 200 ) . json ( result )
49+ } )
50+
1551router
1652 . route ( '/:slug' )
1753 . get (
1854 hasToken ,
1955 hasRegisteredToEvent ,
20- asyncHandler ( async ( req , res ) => {
21- const vote = await WinnerVote . findOne ( {
22- event : req . event . _id ,
23- user : req . user . sub ,
24- } )
56+ getVote ,
57+ // asyncHandler(async (req, res) => {
58+ // const vote = await WinnerVote.findOne({
59+ // event: req.event._id,
60+ // user: req.user.sub,
61+ // })
2562
26- return res . status ( 200 ) . json ( vote )
27- } ) ,
63+ // return res.status(200).json(vote)
64+ // }),
2865 )
2966 . post (
3067 hasToken ,
3168 hasRegisteredToEvent ,
32- asyncHandler ( async ( req , res ) => {
33- const vote = await WinnerVote . findOne ( {
34- event : req . event . _id ,
35- user : req . user . sub ,
36- } )
37- if ( vote ) {
38- vote . project = req . body . projectId
39- const result = await vote . save ( )
40- return res . status ( 200 ) . json ( result )
41- }
42- const newVote = new WinnerVote ( {
43- event : req . event . _id ,
44- user : req . user . sub ,
45- project : req . body . projectId ,
46- } )
47- const result = await newVote . save ( )
48- return res . status ( 200 ) . json ( result )
49- } ) ,
69+ submitVote ,
70+ // asyncHandler(async (req, res) => {
71+ // const vote = await WinnerVote.findOne({
72+ // event: req.event._id,
73+ // user: req.user.sub,
74+ // })
75+ // if (vote) {
76+ // vote.project = req.body.projectId
77+ // const result = await vote.save()
78+ // return res.status(200).json(result)
79+ // }
80+ // const newVote = new WinnerVote({
81+ // event: req.event._id,
82+ // user: req.user.sub,
83+ // project: req.body.projectId,
84+ // })
85+ // const result = await newVote.save()
86+ // return res.status(200).json(result)
87+ // }),
5088 )
5189
5290router . route ( '/:slug/results' ) . get (
5391 hasToken ,
5492 isEventOrganiser ,
55- asyncHandler ( async ( req , res ) => {
56- const votes = await WinnerVote . find ( {
57- event : req . event . _id ,
58- } )
93+ getProjectsWithVotesForEvent ,
94+ // asyncHandler(async (req, res) => {
95+ // const votes = await WinnerVote.find({
96+ // event: req.event._id,
97+ // })
5998
60- const grouped = _ . groupBy ( votes , 'project' )
99+ // const grouped = _.groupBy(votes, 'project')
100+ // console.log('Grouped votes:', grouped)
101+ // getProjectsWithVotesForEvent(req, res)
61102
62- return res . status ( 200 ) . json ( grouped )
63- } ) ,
103+ // return res.status(200).json(grouped)
104+ // }
64105)
106+ // )
65107
66108module . exports = router
0 commit comments