src/amo/sagas/site.js (20 lines of code) (raw):

/* @flow */ import { call, put, select, takeLatest } from 'redux-saga/effects'; import { getSiteStatus } from 'amo/api/site'; import { FETCH_SITE_STATUS, loadSiteStatus } from 'amo/reducers/site'; import { getState } from 'amo/sagas/utils'; import log from 'amo/logger'; import type { GetSiteStatusParams } from 'amo/api/site'; import type { Saga } from 'amo/types/sagas'; export function* fetchSiteStatus(): Saga { const state = yield select(getState); const params: GetSiteStatusParams = { api: state.api }; try { const { read_only: readOnly, notice } = yield call(getSiteStatus, params); yield put(loadSiteStatus({ readOnly, notice })); } catch (error) { log.error(`Could not fetch site status: ${error}`); } } export default function* siteSaga(): Saga { yield takeLatest(FETCH_SITE_STATUS, fetchSiteStatus); }