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