Files
2025-10-12 13:42:02 +02:00

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,
});