Removed views in favor of PostGraphile filter and sort plugins. Updated site modules to GraphQL. Added tag posters.

This commit is contained in:
2020-01-04 02:51:58 +01:00
parent 70e27a6cd9
commit 72b175e9e2
46 changed files with 232 additions and 52 deletions

View File

@@ -45,10 +45,15 @@ function curateActor(actor) {
}
function initActorActions(store, _router) {
async function fetchActorBySlug(actorSlug) {
async function fetchActorBySlug(actorSlug, limit = 100) {
const { actor } = await graphql(`
query Actor($actorSlug:String!) {
actor: actorBySlug(slug:$actorSlug) {
query Actor(
$actorSlug: String!
$limit:Int = 1000,
$after:Date = "1900-01-01",
$before:Date = "2100-01-01",
) {
actor: actorBySlug(slug: $actorSlug) {
id
name
slug
@@ -105,7 +110,18 @@ function initActorActions(store, _router) {
name
slug
}
releases: releasesActors {
releases: releasesActors(
filter: {
release: {
date: {
lessThan: $before,
greaterThan: $after,
}
}
},
first: $limit,
orderBy: RELEASE_BY_RELEASE_ID__DATE_DESC,
) {
release {
id
url
@@ -132,6 +148,9 @@ function initActorActions(store, _router) {
}
`, {
actorSlug,
limit,
after: store.getters.after,
before: store.getters.before,
});
return curateActor(actor);

View File

@@ -29,7 +29,7 @@ const sitesFragment = `
`;
const releaseActorsFragment = `
actors: releasesActorsSortables(orderBy: GENDER_ASC) {
actors: releasesActors(orderBy: ACTOR_BY_ACTOR_ID__GENDER_ASC) {
actor {
id
name
@@ -51,7 +51,7 @@ const releaseActorsFragment = `
`;
const releaseTagsFragment = `
tags: releasesTagsSortables(orderBy: PRIORITY_DESC) {
tags: releasesTags(orderBy: TAG_BY_TAG_ID__PRIORITY_DESC) {
tag {
name
priority

View File

@@ -1,12 +1,69 @@
import { get } from '../api';
import { graphql } from '../api';
import { releasesFragment } from '../fragments';
import { curateSite } from '../curate';
function initSitesActions(store, _router) {
async function fetchSites({ _commit }, siteId) {
const sites = await get(`/sites/${siteId || ''}`);
async function fetchSiteBySlug(siteSlug, limit = 100) {
const { site } = await graphql(`
query Site(
$siteSlug: String!,
$limit:Int = 100,
$after:Date = "1900-01-01",
$before:Date = "2100-01-01",
) {
site: siteBySlug(slug: $siteSlug) {
name
slug
url
network {
id
name
slug
url
}
${releasesFragment}
}
}
`, {
siteSlug,
limit,
after: store.getters.after,
before: store.getters.before,
});
console.log(site);
return curateSite(site);
}
async function fetchSites({ _commit }, { siteSlug, limit = 100 }) {
if (siteSlug) {
return fetchSiteBySlug(siteSlug, limit);
}
const { sites } = await graphql(`
query Sites(
$actorSlug: String!
$limit:Int = 100,
$after:Date = "1900-01-01",
$before:Date = "2100-01-01",
) {
site {
name
slug
url
}
}
`, {
limit,
after: store.getters.after,
before: store.getters.before,
});
return sites;
}
/*
async function fetchSiteReleases({ _commit }, siteId) {
const releases = await get(`/sites/${siteId}/releases`, {
filter: store.state.ui.filter,
@@ -16,10 +73,11 @@ function initSitesActions(store, _router) {
return releases;
}
*/
return {
fetchSites,
fetchSiteReleases,
// fetchSiteReleases,
};
}