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. | |
| `); | |
| }); | |
| } |