feature completed challenge can also return json
This commit is contained in:
@ -4,6 +4,7 @@ import moment from 'moment';
|
|||||||
import { Observable, Scheduler } from 'rx';
|
import { Observable, Scheduler } from 'rx';
|
||||||
import assign from 'object.assign';
|
import assign from 'object.assign';
|
||||||
import debugFactory from 'debug';
|
import debugFactory from 'debug';
|
||||||
|
import accepts from 'accepts';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
dasherize,
|
dasherize,
|
||||||
@ -81,7 +82,8 @@ function updateUserProgress(user, challengeId, completedChallenge) {
|
|||||||
lastUpdated: completedChallenge.completedDate
|
lastUpdated: completedChallenge.completedDate
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
return user;
|
|
||||||
|
return { user, alreadyCompleted };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -373,6 +375,7 @@ module.exports = function(app) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function completedChallenge(req, res, next) {
|
function completedChallenge(req, res, next) {
|
||||||
|
const type = accepts(req).type('html', 'json', 'text');
|
||||||
|
|
||||||
const completedDate = Math.round(+new Date());
|
const completedDate = Math.round(+new Date());
|
||||||
const {
|
const {
|
||||||
@ -382,7 +385,7 @@ module.exports = function(app) {
|
|||||||
solution
|
solution
|
||||||
} = req.body;
|
} = req.body;
|
||||||
|
|
||||||
updateUserProgress(
|
const { alreadyCompleted } = updateUserProgress(
|
||||||
req.user,
|
req.user,
|
||||||
id,
|
id,
|
||||||
{
|
{
|
||||||
@ -395,9 +398,11 @@ module.exports = function(app) {
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
let user = req.user;
|
||||||
saveUser(req.user)
|
saveUser(req.user)
|
||||||
.subscribe(
|
.subscribe(
|
||||||
function(user) {
|
function(user) {
|
||||||
|
user = user;
|
||||||
debug(
|
debug(
|
||||||
'user save points %s',
|
'user save points %s',
|
||||||
user && user.progressTimestamps && user.progressTimestamps.length
|
user && user.progressTimestamps && user.progressTimestamps.length
|
||||||
@ -405,6 +410,12 @@ module.exports = function(app) {
|
|||||||
},
|
},
|
||||||
next,
|
next,
|
||||||
function() {
|
function() {
|
||||||
|
if (type === 'json') {
|
||||||
|
return res.json({
|
||||||
|
points: user.progressTimestamps.length,
|
||||||
|
alreadyCompleted
|
||||||
|
});
|
||||||
|
}
|
||||||
res.sendStatus(200);
|
res.sendStatus(200);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
Reference in New Issue
Block a user