Entity refactor. Facilitating channels without parent.
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
@@ -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: {
|
||||
|
||||
Reference in New Issue
Block a user