Entity refactor. Facilitating channels without parent.

This commit is contained in:
2020-06-28 00:15:13 +02:00
parent 0e8b4caac3
commit 3462d7af2a
50 changed files with 934 additions and 1964 deletions

View File

@@ -68,7 +68,6 @@ function curateRelease(release) {
tags: release.tags ? release.tags.map(({ tag }) => tag) : [],
};
if (release.site) curatedRelease.network = release.site.network;
if (release.scenes) curatedRelease.scenes = release.scenes.map(({ scene }) => curateRelease(scene));
if (release.movies) curatedRelease.movies = release.movies.map(({ movie }) => curateRelease(movie));
if (release.photos) curatedRelease.photos = release.photos.map(({ media }) => media);

View File

@@ -57,6 +57,7 @@ function initEntitiesActions(store, _router) {
filter: {
entity: {
or: [
{ slug: { equalTo: $entitySlug } },
{ parent: { slug: { equalTo: $entitySlug } } },
{ parent: { parent: { slug: { equalTo: $entitySlug } } } }
]
@@ -114,17 +115,27 @@ function initEntitiesActions(store, _router) {
};
}
async function fetchEntities({ _commit }, { type }) {
async function fetchEntities({ _commit }, { type, entitySlugs }) {
const { entities } = await graphql(`
query Entities(
$type: String! = "network"
$entitySlugs: [String!] = []
) {
entities(
orderBy: NAME_ASC
filter: {
type: {
equalTo: $type
}
or: [
{
type: {
equalTo: $type
}
}
{
slug: {
in: $entitySlugs
}
}
]
}
) {
id
@@ -134,7 +145,10 @@ function initEntitiesActions(store, _router) {
url
}
}
`, { type });
`, {
type,
entitySlugs,
});
return entities.map(entity => curateEntity(entity));
}

View File

@@ -1,29 +1,33 @@
const siteFragment = `
site: entity {
entity {
id
name
slug
url
network: parent {
type
parent {
id
name
slug
url
type
}
}
`;
const sitesFragment = `
sites {
entities {
id
name
slug
url
network {
type
parent {
id
name
slug
url
type
}
}
`;

View File

@@ -74,7 +74,6 @@ const routes = [
{
path: '/channel/:entitySlug',
component: Site,
name: 'channelBase',
redirect: from => ({
name: 'channel',
params: {
@@ -92,7 +91,6 @@ const routes = [
},
{
path: '/network/:entitySlug',
name: 'networkBase',
redirect: from => ({
name: 'network',
params: {