Refactoring client to reflect database changes.

This commit is contained in:
2019-12-19 04:42:50 +01:00
parent 31aee71edb
commit 1c43884102
9 changed files with 114 additions and 78 deletions

View File

@@ -75,6 +75,8 @@ async function mounted() {
],
});
console.log(tags);
this.tags = tags.reduce((acc, tag) => {
if (acc[tag.group.slug]) {
return { ...acc, [tag.group.slug]: [...acc[tag.group.slug], tag] };

View File

@@ -1,12 +1,13 @@
function curateActor(actor) {
const curatedActor = {
...actor,
avatar: actor.avatar[0],
origin: actor.originCountry && {
country: actor.originCountry,
},
};
if (actor.avatar) curatedActor.avatar = actor.avatar.media;
return curatedActor;
}
@@ -14,17 +15,31 @@ function curateRelease(release) {
const curatedRelease = {
...release,
actors: release.actors.map(({ actor }) => curateActor(actor)),
poster: release.poster[0],
network: release.site.network,
poster: release.poster && release.poster.media,
tags: release.tags.map(({ tag }) => tag),
network: release.site.network,
};
if (release.trailer) [curatedRelease.trailer] = release.trailer;
if (release.photos) curatedRelease.photos = release.photos.map(({ media }) => media);
if (release.trailer) [curatedRelease.trailer] = release.trailer.media;
return curatedRelease;
}
function curateTag(tag) {
const curatedTag = {
...tag,
};
if (tag.releases) curatedTag.releases = tag.releases.map(({ release }) => curateRelease(release));
if (tag.photos) curatedTag.photos = tag.photos.map(({ media }) => media);
if (tag.poster) curatedTag.poster = tag.poster.media;
return curatedTag;
}
export {
curateActor,
curateRelease,
curateTag,
};

View File

@@ -14,8 +14,8 @@ const siteFragment = `
`;
const releaseActorsFragment = `
actors: releasesActors(orderBy: GENDER_ASC) {
actor: releaseActor {
actors: releasesActorsSortables(orderBy: GENDER_ASC) {
actor {
id
name
slug
@@ -26,16 +26,18 @@ const releaseActorsFragment = `
name
alias
}
avatar: actorsMediasByTargetId(condition: { role: "avatar" }) {
thumbnail
avatar: actorsAvatarByActorId {
media {
thumbnail
}
}
}
}
`;
const releaseTagsFragment = `
tags: releasesTagsByTargetId {
tag: releaseTag {
tags: releasesTags {
tag {
name
priority
slug
@@ -45,28 +47,34 @@ const releaseTagsFragment = `
`;
const releasePosterFragment = `
poster: releasesMediasByTargetId(condition: { role: "poster" }) {
index
path
thumbnail
comment
poster: releasesPosterByReleaseId {
media {
index
path
thumbnail
comment
}
}
`;
const releasePhotosFragment = `
photos: releasesMediasByTargetId(condition: { role: "photo" }) {
index
path
thumbnail
comment
photos: releasesPhotos {
media {
index
path
thumbnail
comment
}
}
`;
const releaseTrailerFragment = `
trailer: releasesMediasByTargetId(condition: { role: "trailer" }) {
index
path
thumbnail
trailer: releasesTrailerByReleaseId {
media {
index
path
thumbnail
}
}
`;

View File

@@ -5,18 +5,7 @@ import {
releaseTagsFragment,
siteFragment,
} from '../fragments';
import { curateRelease } from '../curate';
function curateTag(tag) {
const curatedTag = {
...tag,
};
if (tag.releases) curatedTag.releases = tag.releases.map(({ tagRelease }) => curateRelease(tagRelease));
if (tag.poster) [curatedTag.poster] = tag.poster;
return curatedTag;
}
import { curateTag } from '../curate';
function initTagsActions(store, _router) {
async function fetchTagBySlug(tagSlug) {
@@ -31,20 +20,24 @@ function initTagsActions(store, _router) {
name
slug
}
poster: tagsMediasByTargetId(condition: { role: "poster" }) {
id
thumbnail
path
comment
poster: tagsPosterByTagId {
media {
id
thumbnail
path
comment
}
}
photos: tagsMediasByTargetId(condition: { role: "photo" }) {
id
thumbnail
path
comment
photos: tagsPhotos {
media {
id
thumbnail
path
comment
}
}
releases: releasesTags {
tagRelease {
release {
id
title
date
@@ -82,8 +75,10 @@ function initTagsActions(store, _router) {
id
name
slug
poster: tagsMediasByTargetId(condition: { role: "poster" }) {
thumbnail
poster: tagsPosterByTagId {
media {
thumbnail
}
}
group {
name