forked from DebaucheryLibrarian/traxxx
Moved networks to GraphQL.
This commit is contained in:
@@ -254,8 +254,6 @@ function scrollPhotos(event) {
|
||||
async function mounted() {
|
||||
this.actor = await this.$store.dispatch('fetchActors', { actorSlug: this.$route.params.actorSlug });
|
||||
|
||||
console.log(this.actor.releases[0]);
|
||||
|
||||
if (this.actor) {
|
||||
this.pageTitle = this.actor.name;
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
v-if="network"
|
||||
class="content network"
|
||||
>
|
||||
<FilterBar :fetch-releases="fetchReleases" />
|
||||
<FilterBar :fetch-releases="fetchNetwork" />
|
||||
|
||||
<div class="content-inner">
|
||||
<div class="header">
|
||||
@@ -54,20 +54,18 @@ import FilterBar from '../header/filter-bar.vue';
|
||||
import Releases from '../releases/releases.vue';
|
||||
import SiteTile from '../tile/site.vue';
|
||||
|
||||
async function fetchReleases() {
|
||||
this.releases = await this.$store.dispatch('fetchNetworkReleases', this.$route.params.networkSlug);
|
||||
}
|
||||
|
||||
async function mounted() {
|
||||
[[this.network]] = await Promise.all([
|
||||
this.$store.dispatch('fetchNetworks', this.$route.params.networkSlug),
|
||||
this.fetchReleases(),
|
||||
]);
|
||||
async function fetchNetwork() {
|
||||
this.network = await this.$store.dispatch('fetchNetworks', this.$route.params.networkSlug);
|
||||
|
||||
this.sites = this.network.sites
|
||||
.filter(site => !site.independent)
|
||||
.sort(({ name: nameA }, { name: nameB }) => nameA.localeCompare(nameB));
|
||||
|
||||
this.releases = this.network.sites.map(site => site.releases).flat();
|
||||
}
|
||||
|
||||
async function mounted() {
|
||||
await this.fetchNetwork();
|
||||
this.pageTitle = this.network.name;
|
||||
}
|
||||
|
||||
@@ -81,13 +79,13 @@ export default {
|
||||
return {
|
||||
network: null,
|
||||
sites: null,
|
||||
releases: null,
|
||||
releases: [],
|
||||
pageTitle: null,
|
||||
};
|
||||
},
|
||||
mounted,
|
||||
methods: {
|
||||
fetchReleases,
|
||||
fetchNetwork,
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
@@ -249,9 +249,8 @@ export default {
|
||||
}
|
||||
|
||||
.tags {
|
||||
max-height: 2.5rem;
|
||||
max-height: .5rem;
|
||||
padding: .25rem .5rem 1rem .5rem;
|
||||
line-height: 1.5rem;
|
||||
word-wrap: break-word;
|
||||
overflow-y: hidden;
|
||||
}
|
||||
|
||||
@@ -12,8 +12,6 @@ function curateActor(actor) {
|
||||
}
|
||||
|
||||
function curateRelease(release) {
|
||||
console.log(release);
|
||||
|
||||
const curatedRelease = {
|
||||
...release,
|
||||
actors: release.actors ? release.actors.map(({ actor }) => curateActor(actor)) : [],
|
||||
@@ -28,6 +26,35 @@ function curateRelease(release) {
|
||||
return curatedRelease;
|
||||
}
|
||||
|
||||
function curateSite(site, network) {
|
||||
const curatedSite = {
|
||||
id: site.id,
|
||||
name: site.name,
|
||||
slug: site.slug,
|
||||
url: site.url,
|
||||
};
|
||||
|
||||
if (site.releases) curatedSite.releases = site.releases.map(release => curateRelease(release));
|
||||
if (site.network || network) curatedSite.network = site.network || network;
|
||||
|
||||
return curatedSite;
|
||||
}
|
||||
|
||||
function curateNetwork(network) {
|
||||
const curatedNetwork = {
|
||||
id: network.id,
|
||||
name: network.name,
|
||||
slug: network.slug,
|
||||
url: network.url,
|
||||
};
|
||||
|
||||
if (network.sites) {
|
||||
curatedNetwork.sites = network.sites.map(site => curateSite(site, curatedNetwork));
|
||||
}
|
||||
|
||||
return curatedNetwork;
|
||||
}
|
||||
|
||||
function curateTag(tag) {
|
||||
const curatedTag = {
|
||||
...tag,
|
||||
@@ -43,5 +70,7 @@ function curateTag(tag) {
|
||||
export {
|
||||
curateActor,
|
||||
curateRelease,
|
||||
curateSite,
|
||||
curateNetwork,
|
||||
curateTag,
|
||||
};
|
||||
|
||||
@@ -13,6 +13,21 @@ const siteFragment = `
|
||||
}
|
||||
`;
|
||||
|
||||
const sitesFragment = `
|
||||
sites {
|
||||
id
|
||||
name
|
||||
slug
|
||||
url
|
||||
network {
|
||||
id
|
||||
name
|
||||
slug
|
||||
url
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
const releaseActorsFragment = `
|
||||
actors: releasesActorsSortables(orderBy: GENDER_ASC) {
|
||||
actor {
|
||||
@@ -36,7 +51,7 @@ const releaseActorsFragment = `
|
||||
`;
|
||||
|
||||
const releaseTagsFragment = `
|
||||
tags: releasesTags {
|
||||
tags: releasesTagsSortables(orderBy: PRIORITY_DESC) {
|
||||
tag {
|
||||
name
|
||||
priority
|
||||
@@ -135,4 +150,5 @@ export {
|
||||
releasesFragment,
|
||||
releaseFragment,
|
||||
siteFragment,
|
||||
sitesFragment,
|
||||
};
|
||||
|
||||
@@ -1,27 +1,68 @@
|
||||
import { get } from '../api';
|
||||
import { graphql } from '../api';
|
||||
import { sitesFragment, releasesFragment } from '../fragments';
|
||||
import { curateNetwork } from '../curate';
|
||||
|
||||
function initNetworksActions(store, _router) {
|
||||
async function fetchNetworks({ _commit }, networkId) {
|
||||
const networks = await get(`/networks/${networkId || ''}`, {
|
||||
|
||||
});
|
||||
|
||||
return networks;
|
||||
}
|
||||
|
||||
async function fetchNetworkReleases({ _commit }, networkId) {
|
||||
const releases = await get(`/networks/${networkId}/releases`, {
|
||||
filter: store.state.ui.filter,
|
||||
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 releases;
|
||||
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,
|
||||
fetchNetworkReleases,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user