application/redux/actions/content-search-actions.js
- import BaseService from './../../services/base-service';
- import {parseSrn} from './../../util/strings';
- import Immutable from 'immutable';
-
- class ContentSearchService extends BaseService {
-
- fetch(opts) {
- return this.get('/v3/search', opts);
- }
- }
-
- const service = new ContentSearchService;
-
- /**
- * Action types
- */
- export const CONTENT_SEARCH_REQUEST = 'CONTENT_SEARCH_REQUEST';
- export const CONTENT_SEARCH_RECEIVE = 'CONTENT_SEARCH_RECEIVE';
- export const CONTENT_SEARCH_INVALIDATE = 'CONTENT_SEARCH_INVALIDATE';
- export const CONTENT_SEARCH_RESET = 'CONTENT_SEARCH_RESET';
- export const CONTENT_SEARCH_PAGINATION = 'CONTENT_SEARCH_PAGINATION';
-
- /**
- * Action creators
- */
- export function contentSearchRequest(params = {}) {
- return {
- type: CONTENT_SEARCH_REQUEST,
- payload: {
- params: params
- }
- };
- }
-
- export function contentSearchReceive(items) {
-
- return {
- type: CONTENT_SEARCH_RECEIVE,
- payload: {
- content: items ? items : []
- }
- };
- }
-
- export function contentSearchReceivePagination(pagination) {
- return {
- type: CONTENT_SEARCH_PAGINATION,
- payload: {
- pagination: pagination ? pagination : {}
- }
- }
- }
-
-
- export function contentSearchInvalidate() {
- return {
- type: CONTENT_SEARCH_INVALIDATE,
- payload: {
- }
- };
- }
-
- export function contentSearchClearItems() {
- return {
- type: CONTENT_SEARCH_RESET,
- payload: {
- }
- };
- }
-
- export function contentSearchReset() {
- return function (dispatch, getState) {
- return Promise.all([dispatch(contentSearchClearItems())]);
- }
- }
-
- export function contentSearchFetch(params = {}) {
- return function(dispatch, getState) {
- dispatch(contentSearchRequest(params));
-
- params.per_page = params.per_page ? params.per_page : 20;
- params.order = params.order ? params.order : "modified_at";
- params.dir = params.dir ? params.dir : "desc";
-
- return service.fetch(params)
- .then(response => {
- dispatch(contentSearchReceivePagination(response));
- return dispatch(contentSearchReceive(response.get('items')));
- });
- };
- }