postingActions.js 1.57 KB
/**
 * # postingActions.js
 *
 * posting page....
 *
 */
'use strict';

import {Actions} from 'react-native-router-flux';
import PostingService from '../../services/PostingService';

const {
    POSTING_BOARD_REQUEST,
    POSTING_BOARD_SUCCESS,
    POSTING_BOARD_FAILURE,
    POSTING_BOARD_SELECTED,
    POSTING_ASSETS_SELECTED,
    POSTING_TITLE_EDITED,
    POSTING_CONTENT_EDITED,
} = require('../../constants/actionTypes').default;

export function titleEdited(title) {
    return {
        type:POSTING_TITLE_EDITED,
        payload: title,
    }
}

export function contentEdited(content) {
    return {
        type: POSTING_CONTENT_EDITED,
        payload: content,
    }
}

export function boardSelected(boardName,boardCode) {
    return {
        type: POSTING_BOARD_SELECTED,
        payload: {boardName, boardCode},
    }
}

export function getBoardRequest() {
    return {
        type: POSTING_BOARD_REQUEST,
    };
}

export function getBoardSuccess(json) {
    return {
        type: POSTING_BOARD_SUCCESS,
        payload: json,
    }
}

export function getBoardFailure(error) {
    return {
        type: POSTING_BOARD_FAILURE,
        payload: error,
    }
}

export function getBoardList() {
    return dispatch => {
        dispatch(getBoardRequest());
        return new PostingService().getBoardList().then(json => {
            dispatch(getBoardSuccess(json));
        }).catch(error => {
            dispatch(getBoardFailure(error));
        });
    };
}

export function assetsSelected(assets) {
    return {
        type: POSTING_ASSETS_SELECTED,
        payload: assets,
    }
}