trc-client-core
Version:
The core of the TRC Client
53 lines (40 loc) • 1.75 kB
JavaScript
var Reflux = require('reflux');
var xhr = require('trc-client-core/src/utils/xhr');
var SodataActions = Reflux.createActions({
'fetchOverEnrolledSoItems': {asyncResult: true},
'fetchOverEnrolledSoItem': {asyncResult: true},
'fetchSoData': {asyncResult: true},
'fetchTechnicalTrainers': {asyncResult: true},
'fetchCourseCalendar': {asyncResult: true}, //this is a temporary fix
'fetchSoItem': {asyncResult: true},
'postSingleEnrollment': {asyncResult: true}, // TODO: remove post bulk enrol
'fetchUpcomingSessions': {asyncResult: true}
});
SodataActions.fetchSoData.listenAndPromise(function(soId) {
return xhr.get('/api/soData/' + soId);
});
SodataActions.fetchOverEnrolledSoItems.listenAndPromise(function() {
return xhr.get('/api/v1/so_data/find', {
over_enroll: true
});
});
SodataActions.fetchOverEnrolledSoItem.listenAndPromise(function(soId) {
SodataActions.fetchSoData(soId);
return xhr.get('/api/admin/so/' + soId + '/enrolled_registrations');
});
SodataActions.fetchCourseCalendar.listenAndPromise(function(query){
return xhr.get('/api/v1/course_calender', query);
});
SodataActions.fetchSoItem.listenAndPromise(function(query){
if(query && query.participantId && query.courseCode) {
return xhr.get('/careerPathway/enrolment/' + query.courseCode, query);
}
return Promise.reject(new Error('query requires participantId & courseCode'));
});
SodataActions.postSingleEnrollment.listenAndPromise(function(query){
return xhr.post('/careerPathway/enrolment/' + query.courseCode, query);
});
SodataActions.fetchUpcomingSessions.listenAndPromise(function(){
return xhr.get('/api/scheduled/upcoming');
});
module.exports = SodataActions;