twreporter-react-index-page
Version:
twreporter index page version 2
113 lines (88 loc) • 3.48 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.fetchPhotographyPostsOnIndexPage = fetchPhotographyPostsOnIndexPage;
exports.fetchInfographicPostsOnIndexPage = fetchInfographicPostsOnIndexPage;
var _axios = require('axios');
var _axios2 = _interopRequireDefault(_axios);
var _get = require('lodash/get');
var _get2 = _interopRequireDefault(_get);
var _actionTypes = require('../constants/action-types');
var _actionTypes2 = _interopRequireDefault(_actionTypes);
var _reduxStateFields = require('../constants/redux-state-fields');
var _reduxStateFields2 = _interopRequireDefault(_reduxStateFields);
var _apiEndpoints = require('../constants/api-endpoints');
var _apiEndpoints2 = _interopRequireDefault(_apiEndpoints);
var _formApiUrl = require('../utils/form-api-url');
var _formApiUrl2 = _interopRequireDefault(_formApiUrl);
var _postStyles = require('../constants/post-styles');
var _postStyles2 = _interopRequireDefault(_postStyles);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// lodash
var _ = {
get: _get2.default
/**
* fetchPhotographyPostsOnIndexPage
* This function will fetch 10 latest posts with photography style,
* It's specifically made for index page
*/
};function fetchPhotographyPostsOnIndexPage() {
return function (dispatch, getState) {
var state = getState();
var posts = _.get(state, _reduxStateFields2.default.indexPage + '.' + _reduxStateFields2.default.photographies, []);
if (Array.isArray(posts) && posts.length > 0) {
return null;
}
var path = _apiEndpoints2.default.posts + '?where={"style":"' + _postStyles2.default.photography + '"}&limit=10';
// Start to get topics
dispatch({
type: _actionTypes2.default.START_TO_GET_POSTS
});
return _axios2.default.get((0, _formApiUrl2.default)(path)).then(function (response) {
var items = _.get(response, 'data.records', []);
return dispatch({
type: _actionTypes2.default.GET_PHOTOGRAPHY_POSTS_FOR_INDEX_PAGE,
payload: items
});
}).catch(function (error) {
// Error to get topics
return dispatch({
type: _actionTypes2.default.ERROR_TO_GET_POSTS,
errorMsg: error.toString()
});
});
};
}
/**
* fetchPhotographyPostsOnIndexPage
* This function will fetch 10 latest posts with photography style,
* It's specifically made for index page
*/
function fetchInfographicPostsOnIndexPage() {
return function (dispatch, getState) {
var state = getState();
var posts = _.get(state, _reduxStateFields2.default.indexPage + '.' + _reduxStateFields2.default.infographics, []);
if (Array.isArray(posts) && posts.length > 0) {
return null;
}
var path = _apiEndpoints2.default.posts + '?where={"style":"' + _postStyles2.default.infographic + '"}&limit=10';
// Start to get topics
dispatch({
type: _actionTypes2.default.START_TO_GET_POSTS
});
return _axios2.default.get((0, _formApiUrl2.default)(path)).then(function (response) {
var items = _.get(response, 'data.records', []);
return dispatch({
type: _actionTypes2.default.GET_INFOGRAPHIC_POSTS_FOR_INDEX_PAGE,
payload: items
});
}).catch(function (error) {
// Error to get topics
return dispatch({
type: _actionTypes2.default.ERROR_TO_GET_POSTS,
errorMsg: error.toString()
});
});
};
}