import { graphql } from '../api'; import { sitesFragment, releasesFragment } from '../fragments'; import { curateNetwork } from '../curate'; function initNetworksActions(store, _router) { async function fetchNetworkBySlug(networkSlug, limit = 100) { const { network } = await graphql(` query Network( $networkSlug: String! $limit:Int = 1000, $after:Date = "1900-01-01", $before:Date = "2100-01-01", ) { network: networkBySlug(slug: $networkSlug) { id name slug url sites { id name slug url ${releasesFragment} network { id name slug url } } } } `, { networkSlug, limit, after: store.getters.after, before: store.getters.before, }); return curateNetwork(network); } async function fetchNetworks({ _commit }, networkSlug) { if (networkSlug) { return fetchNetworkBySlug(networkSlug); } const { networks } = await graphql(` query Networks { networks { id name slug url ${sitesFragment} } } `); return networks.map(network => curateNetwork(network)); } return { fetchNetworks, }; } export default initNetworksActions;