traxxx/assets/js/networks/actions.js

70 lines
1.8 KiB
JavaScript
Raw Normal View History

2020-01-02 23:59:02 +00:00
import { graphql } from '../api';
import { sitesFragment, releasesFragment } from '../fragments';
import { curateNetwork } from '../curate';
function initNetworksActions(store, _router) {
2020-01-02 23:59:02 +00:00
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,
});
2020-01-02 23:59:02 +00:00
return curateNetwork(network);
}
2020-01-02 23:59:02 +00:00
async function fetchNetworks({ _commit }, networkSlug) {
if (networkSlug) {
return fetchNetworkBySlug(networkSlug);
}
const { networks } = await graphql(`
query Networks {
networks {
id
name
slug
url
${sitesFragment}
}
}
`);
2020-01-02 23:59:02 +00:00
return networks.map(network => curateNetwork(network));
}
return {
fetchNetworks,
};
}
export default initNetworksActions;