- [x] .js - [x] .json - [x] .md - [x] .scss - [x] .yml Reviewed-on: https://codeberg.org/superseriousbusiness/masto-fe-standalone/pulls/85 Co-authored-by: Zoë Bijl <code@moiety.me> Co-committed-by: Zoë Bijl <code@moiety.me>
88 lines
2.5 KiB
JavaScript
88 lines
2.5 KiB
JavaScript
import api from '../api';
|
|
|
|
import { importFetchedAccount } from './importer';
|
|
|
|
export const SERVER_FETCH_REQUEST = 'Server_FETCH_REQUEST';
|
|
export const SERVER_FETCH_SUCCESS = 'Server_FETCH_SUCCESS';
|
|
export const SERVER_FETCH_FAIL = 'Server_FETCH_FAIL';
|
|
|
|
export const EXTENDED_DESCRIPTION_REQUEST = 'EXTENDED_DESCRIPTION_REQUEST';
|
|
export const EXTENDED_DESCRIPTION_SUCCESS = 'EXTENDED_DESCRIPTION_SUCCESS';
|
|
export const EXTENDED_DESCRIPTION_FAIL = 'EXTENDED_DESCRIPTION_FAIL';
|
|
|
|
export const SERVER_DOMAIN_BLOCKS_FETCH_REQUEST = 'SERVER_DOMAIN_BLOCKS_FETCH_REQUEST';
|
|
export const SERVER_DOMAIN_BLOCKS_FETCH_SUCCESS = 'SERVER_DOMAIN_BLOCKS_FETCH_SUCCESS';
|
|
export const SERVER_DOMAIN_BLOCKS_FETCH_FAIL = 'SERVER_DOMAIN_BLOCKS_FETCH_FAIL';
|
|
|
|
export const fetchServer = () => (dispatch, getState) => {
|
|
if (getState().getIn(['server', 'server', 'isLoading'])) {
|
|
return;
|
|
}
|
|
|
|
dispatch(fetchServerRequest());
|
|
|
|
/* global data */
|
|
try {
|
|
api(getState)
|
|
.get('/api/v2/instance').then({ data }).catch(error => {
|
|
console.error(error);
|
|
});
|
|
if (data.contact.account) dispatch(importFetchedAccount(data.contact.account));
|
|
dispatch(fetchServerSuccess(data));
|
|
} catch (e) {
|
|
api(getState)
|
|
.get('/api/v1/instance').then(({ data }) => {
|
|
if (data.contact_account) dispatch(importFetchedAccount(data.contact_account));
|
|
dispatch(fetchServerSuccess(data));
|
|
}).catch(err => dispatch(fetchServerFail(err)));
|
|
}
|
|
};
|
|
|
|
const fetchServerRequest = () => ({
|
|
type: SERVER_FETCH_REQUEST,
|
|
});
|
|
|
|
const fetchServerSuccess = server => ({
|
|
type: SERVER_FETCH_SUCCESS,
|
|
server,
|
|
});
|
|
|
|
const fetchServerFail = error => ({
|
|
type: SERVER_FETCH_FAIL,
|
|
error,
|
|
});
|
|
|
|
export const fetchDomainBlocks = () => (dispatch, getState) => {
|
|
if (getState().getIn(['server', 'domainBlocks', 'isLoading'])) {
|
|
return;
|
|
}
|
|
|
|
dispatch(fetchDomainBlocksRequest());
|
|
|
|
api(getState)
|
|
.get('/api/v1/instance/domain_blocks')
|
|
.then(({ data }) => dispatch(fetchDomainBlocksSuccess(true, data)))
|
|
.catch(err => {
|
|
if (err.response.status === 404) {
|
|
dispatch(fetchDomainBlocksSuccess(false, []));
|
|
} else {
|
|
dispatch(fetchDomainBlocksFail(err));
|
|
}
|
|
});
|
|
};
|
|
|
|
const fetchDomainBlocksRequest = () => ({
|
|
type: SERVER_DOMAIN_BLOCKS_FETCH_REQUEST,
|
|
});
|
|
|
|
const fetchDomainBlocksSuccess = (isAvailable, blocks) => ({
|
|
type: SERVER_DOMAIN_BLOCKS_FETCH_SUCCESS,
|
|
isAvailable,
|
|
blocks,
|
|
});
|
|
|
|
const fetchDomainBlocksFail = error => ({
|
|
type: SERVER_DOMAIN_BLOCKS_FETCH_FAIL,
|
|
error,
|
|
});
|