|
|
- import fetch from 'isomorphic-fetch'
-
- export const SET_TIMELINE = 'SET_TIMELINE';
- export const ADD_STATUS = 'ADD_STATUS';
-
- export const PUBLISH = 'PUBLISH';
- export const PUBLISH_START = 'PUBLISH_START';
- export const PUBLISH_SUCC = 'PUBLISH_SUCC';
- export const PUBLISH_ERROR = 'PUBLISH_ERROR';
-
- export function setTimeline(timeline, statuses) {
- return {
- type: SET_TIMELINE,
- timeline: timeline,
- statuses: statuses
- };
- }
-
- export function addStatus(timeline, status) {
- return {
- type: ADD_STATUS,
- timeline: timeline,
- status: status
- };
- }
-
- export function publishStart() {
- return {
- type: PUBLISH_START
- };
- }
-
- export function publishError(error) {
- return {
- type: PUBLISH_ERROR,
- error: error
- };
- }
-
- export function publishSucc(status) {
- return {
- type: PUBLISH_SUCC,
- status: status
- };
- }
-
- export function publish(text, in_reply_to_id) {
- return function (dispatch, getState) {
- const access_token = getState().getIn(['meta', 'access_token']);
-
- var data = new FormData();
-
- data.append('status', text);
-
- if (in_reply_to_id !== null) {
- data.append('in_reply_to_id', in_reply_to_id);
- }
-
- dispatch(publishStart());
-
- return fetch('/api/statuses', {
- method: 'POST',
-
- headers: {
- 'Authorization': `Bearer ${access_token}`
- },
-
- body: data
- }).then(function (response) {
- return response.json();
- }).then(function (json) {
- if (json.error) {
- dispatch(publishError(json.error));
- } else {
- dispatch(publishSucc(json));
- }
- }).catch(function (error) {
- dispatch(publishError(error));
- });
- };
- }
|