|
| 1 | +"use strict"; |
| 2 | + |
| 3 | +const CourseInvite = require('../models/courseInvite'); |
| 4 | +const CourseGroup = require('../models/courseGroup'); |
1 | 5 |
|
2 | 6 | /** |
3 | 7 | * The order form is sent to checkout when it's 100% valid (client-side code validated it) |
|
6 | 10 | * @param next |
7 | 11 | */ |
8 | 12 | exports.get = function*(next) { |
9 | | -/* |
10 | | - var user = this.params.userById; |
11 | 13 |
|
12 | | - if (String(this.req.user._id) != String(user._id)) { |
| 14 | + var user = this.userById; |
| 15 | + |
| 16 | + if (String(this.user._id) != String(user._id)) { |
13 | 17 | this.throw(403); |
14 | 18 | } |
15 | 19 |
|
16 | | - var orders = yield Order.find({ |
17 | | - user: user._id, |
18 | | - status: { |
19 | | - $ne: Order.STATUS_CANCEL |
20 | | - } |
21 | | - }).sort({created: 1}).populate('user').exec(); |
| 20 | + // active invites |
| 21 | + var invites = yield CourseInvite.find({ |
| 22 | + email: user.email, |
| 23 | + accepted: false |
| 24 | + }).populate('group').exec(); |
| 25 | + |
| 26 | + // plus groups where participates |
| 27 | + var groups = yield CourseGroup.find({ |
| 28 | + 'participants.user': user._id |
| 29 | + }).exec(); |
22 | 30 |
|
23 | | - var ordersToShow = []; |
| 31 | + this.body = []; |
24 | 32 |
|
25 | | - for (var i = 0; i < orders.length; i++) { |
26 | | - var format = require(orders[i].module).formatOrderForProfile; |
27 | | - if (!format) continue; |
28 | | - ordersToShow.push(yield* format.call(this, orders[i])); |
| 33 | + for (let i = 0; i < invites.length; i++) { |
| 34 | + let group = formatGroup(invites[i].group); |
| 35 | + group.inviteToken = invites[i].token; |
| 36 | + this.body.push(group); |
| 37 | + } |
| 38 | + |
| 39 | + for (let i = 0; i < groups.length; i++) { |
| 40 | + let group = groups[i]; |
| 41 | + this.body.push(formatGroup(group)); |
29 | 42 | } |
30 | 43 |
|
31 | | - this.body = ordersToShow; |
32 | | -*/ |
33 | 44 | }; |
| 45 | + |
| 46 | +function formatGroup(group) { |
| 47 | + return { |
| 48 | + title: group.title, |
| 49 | + groupUrl: group.getUrl(), |
| 50 | + groupPrivateUrl: group.getPrivateUrl(), |
| 51 | + dateStart: group.dateStart, |
| 52 | + dateEnd: group.dateEnd, |
| 53 | + timeDesc: group.timeDesc |
| 54 | + }; |
| 55 | +} |
0 commit comments