trc-client-core
Version:
The core of the TRC Client
72 lines (54 loc) • 1.83 kB
JavaScript
import reflux from 'reflux';
import xhr from 'trc-client-core/src/utils/xhr';
import {createAction} from 'redux-actions';
import {
QANDA_ASK_FORM_SUCCESS,
QANDA_TAGS_FETCH,
QANDA_TAGS_RECIEVE,
QANDA_TAGS_ERROR
} from 'trc-client-core/src/constants/ActionTypes';
import {
QANDA_TAGS_ENDPOINT,
QANDA_QUESTIONS_ENDPOINT,
QANDA_ASK_ENDPOINT
} from 'trc-client-core/src/constants/Endpoints';
var QandaActions = reflux.createActions({
// Questions
'fetchQuestions': {asyncResult: true},
// Question
'deleteQuestion': {asyncResult: true},
'saveQuestion': {asyncResult: true},
'createQuestion': {asyncResult: true},
// Tags
'fetchTags': {asyncResult: true},
// Ask Form
'askQuestion': {},
'updateAskForm': {},
'sendAskFormData': {asyncResult: true}
});
QandaActions.fetchQuestions.listenAndPromise(function() {
return xhr.get(QANDA_QUESTIONS_ENDPOINT);
});
QandaActions.fetchTags.listenAndPromise(function() {
return xhr.get(QANDA_TAGS_ENDPOINT);
});
QandaActions.sendAskFormData.listenAndPromise(function(data){
return xhr.post(QANDA_ASK_ENDPOINT, data);
});
QandaActions.deleteQuestion.listenAndPromise(function(query){
return xhr.del(QANDA_QUESTIONS_ENDPOINT + '/' + query);
});
QandaActions.saveQuestion.listenAndPromise(function(query){
return xhr.put(QANDA_QUESTIONS_ENDPOINT + '/' + query.id, query);
});
QandaActions.createQuestion.listenAndPromise(function(query){
return xhr.post(QANDA_QUESTIONS_ENDPOINT, query);
});
// Redux
QandaActions.qandaSubmitAskForm = createAction(QANDA_ASK_FORM_SUCCESS, (query) => {
return xhr.post(QANDA_ASK_ENDPOINT, query);
});
QandaActions.qandaRequestTags = createAction(QANDA_TAGS_RECIEVE, () => {
return xhr.get(QANDA_TAGS_ENDPOINT);
});
module.exports = QandaActions;