Permalink
Cannot retrieve contributors at this time
Fetching contributors…

import dedent from 'dedent'; | |
import debugFactory from 'debug'; | |
import { Observable } from 'rx'; | |
import commitGoals from './commit-goals.json'; | |
const debug = debugFactory('fcc:utils/commit'); | |
export { commitGoals }; | |
export function completeCommitment$(user) { | |
const { | |
isFrontEndCert, | |
isDataVisCert, | |
isBackEndCert, | |
isFullStackCert | |
} = user; | |
return Observable.fromNodeCallback(user.pledge, user)() | |
.flatMap(pledge => { | |
if (!pledge) { | |
return Observable.just('No pledge found'); | |
} | |
const { goal } = pledge; | |
if ( | |
(isFrontEndCert && goal === commitGoals.frontEndCert) || | |
(isDataVisCert && goal === commitGoals.dataVisCert) || | |
(isBackEndCert && goal === commitGoals.backEndCert) || | |
(isFullStackCert && goal === commitGoals.fullStackCert) | |
) { | |
debug('marking goal complete'); | |
pledge.isCompleted = true; | |
pledge.dateEnded = new Date(); | |
pledge.formerUserId = pledge.userId; | |
pledge.userId = null; | |
return Observable.fromNodeCallback(pledge.save, pledge)(); | |
} | |
return Observable.just(dedent` | |
You have not yet reached your goal of completing the ${goal} | |
Please retry when you have met the requirements. | |
`); | |
}); | |
} |