traxxx/assets/js/networks/actions.js

77 lines
2.0 KiB
JavaScript

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
independent
${releasesFragment}
network {
id
name
slug
url
}
}
studios {
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(orderBy: NAME_ASC) {
id
name
slug
url
${sitesFragment}
}
}
`);
return networks.map(network => curateNetwork(network));
}
return {
fetchNetworks,
};
}
export default initNetworksActions;