Co-authored-by: tobi <tobi.smethurst@protonmail.com> Reviewed-on: https://codeberg.org/superseriousbusiness/masto-fe-standalone/pulls/88 Co-authored-by: Zoë Bijl <moiety@noreply.codeberg.org> Co-committed-by: Zoë Bijl <moiety@noreply.codeberg.org>
88 lines
2.3 KiB
JavaScript
88 lines
2.3 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 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,
|
|
});
|