1
0
Fork 0
lunch/js/actions/ReportActions.js

51 lines
957 B
JavaScript

var ReportConstants = require('../constants/ReportConstants');
var ErrorActions = require('./ErrorActions');
var Report = models.Report;
var Error = models.Error;
function fetchReport(reportId) {
return {
type: ReportConstants.FETCH_REPORT,
reportId: reportId
}
}
function reportFetched(report) {
return {
type: ReportConstants.REPORT_FETCHED,
report: report
}
}
function fetch(reportId) {
return function (dispatch) {
dispatch(fetchReport(reportId));
$.ajax({
type: "GET",
dataType: "json",
url: "report/?id="+reportId,
success: function(data, status, jqXHR) {
var e = new Error();
e.fromJSON(data);
if (e.isError()) {
dispatch(ErrorActions.serverError(e));
} else {
var r = new Report();
r.fromJSON(data);
dispatch(reportFetched(r));
}
},
error: function(jqXHR, status, error) {
dispatch(ErrorActions.ajaxError(e));
}
});
};
}
module.exports = {
fetch: fetch
};