traxxx/assets/js/releases/actions.js

49 lines
1.4 KiB
JavaScript

import { graphql } from '../api';
import { releasesFragment, releaseFragment } from '../fragments';
import { curateRelease } from '../curate';
function initReleasesActions(store, _router) {
async function fetchReleases({ _commit }, { limit = 100 }) {
const { releases } = await graphql(`
query Releases(
$limit:Int = 1000,
$after:Date = "1900-01-01",
$before:Date = "2100-01-01",
$orderBy:[ReleasesOrderBy!],
$exclude: [String!]
) {
${releasesFragment}
}
`, {
limit,
after: store.getters.after,
before: store.getters.before,
orderBy: store.state.ui.range === 'upcoming' ? 'DATE_ASC' : 'DATE_DESC',
exclude: store.state.ui.filter,
});
return releases.map(release => curateRelease(release));
}
async function fetchReleaseById({ _commit }, releaseId) {
// const release = await get(`/releases/${releaseId}`);
const { release } = await graphql(`
query Release($releaseId:Int!) {
${releaseFragment}
}
`, {
releaseId: Number(releaseId),
});
return curateRelease(release);
}
return {
fetchReleases,
fetchReleaseById,
};
}
export default initReleasesActions;