soapbox/app/gabsocial/actions/me.js

80 wiersze
1.7 KiB
JavaScript
Czysty Zwykły widok Historia

import api from '../api';
import { importFetchedAccount } from './importer';
export const ME_FETCH_REQUEST = 'ME_FETCH_REQUEST';
export const ME_FETCH_SUCCESS = 'ME_FETCH_SUCCESS';
export const ME_FETCH_FAIL = 'ME_FETCH_FAIL';
export const ME_FETCH_SKIP = 'ME_FETCH_SKIP';
2020-04-21 20:53:32 +00:00
export const ME_PATCH_REQUEST = 'ME_PATCH_REQUEST';
export const ME_PATCH_FAIL = 'ME_PATCH_FAIL';
2020-04-30 00:13:05 +00:00
const hasToken = getState => getState().hasIn(['auth', 'user', 'access_token']);
const noOp = () => new Promise(f => f());
2020-04-17 21:08:07 +00:00
export function fetchMe() {
return (dispatch, getState) => {
2020-04-17 21:08:07 +00:00
if (!hasToken(getState)) {
dispatch({ type: ME_FETCH_SKIP }); return noOp();
2020-04-14 20:45:38 +00:00
};
2020-04-17 21:08:07 +00:00
dispatch(fetchMeRequest());
return api(getState).get('/api/v1/accounts/verify_credentials').then(response => {
dispatch(fetchMeSuccess(response.data));
}).catch(error => {
dispatch(fetchMeFail(error));
});
};
}
2020-04-21 20:53:32 +00:00
export function patchMe(params) {
return (dispatch, getState) => {
2020-04-21 23:00:05 +00:00
dispatch(patchMeRequest());
2020-04-21 20:53:32 +00:00
return api(getState)
.patch('/api/v1/accounts/update_credentials', params)
.then(response => {
dispatch(fetchMeSuccess(response.data));
}).catch(error => {
dispatch(patchMeFail(error));
});
};
}
export function fetchMeRequest() {
return {
type: ME_FETCH_REQUEST,
};
}
export function fetchMeSuccess(me) {
2020-04-21 23:00:05 +00:00
return (dispatch, getState) => {
dispatch(importFetchedAccount(me));
dispatch({
type: ME_FETCH_SUCCESS,
me,
});
};
}
export function fetchMeFail(error) {
return {
type: ME_FETCH_FAIL,
error,
};
};
2020-04-21 20:53:32 +00:00
export function patchMeRequest() {
return {
type: ME_PATCH_REQUEST,
};
}
export function patchMeFail(error) {
return {
type: ME_PATCH_FAIL,
error,
};
};