2019-12-15 21:16:55 +00:00
|
|
|
import { graphql } from '../api';
|
|
|
|
|
|
|
|
function curateRelease(release) {
|
|
|
|
const curatedRelease = {
|
|
|
|
...release,
|
|
|
|
actors: release.actors.map(({ actor }) => ({
|
|
|
|
...actor,
|
|
|
|
avatar: actor.avatar[0],
|
|
|
|
origin: {
|
|
|
|
country: actor.originCountry,
|
|
|
|
},
|
|
|
|
})),
|
|
|
|
poster: release.poster[0],
|
|
|
|
network: release.site.network,
|
|
|
|
tags: release.tags.map(({ tag }) => tag),
|
|
|
|
};
|
|
|
|
|
|
|
|
if (release.trailer) [curatedRelease.trailer] = release.trailer;
|
|
|
|
|
|
|
|
return curatedRelease;
|
|
|
|
}
|
2019-06-03 03:31:38 +00:00
|
|
|
|
2019-12-15 04:42:51 +00:00
|
|
|
function initReleasesActions(_store, _router) {
|
2019-11-15 01:37:17 +00:00
|
|
|
async function fetchReleases({ _commit }) {
|
2019-12-15 04:42:51 +00:00
|
|
|
/*
|
2019-11-15 01:37:17 +00:00
|
|
|
const releases = await get('/releases', {
|
|
|
|
filter: store.state.ui.filter,
|
|
|
|
after: store.getters.after,
|
|
|
|
before: store.getters.before,
|
2019-11-15 00:27:58 +00:00
|
|
|
});
|
2019-12-15 04:42:51 +00:00
|
|
|
*/
|
2019-06-03 03:31:38 +00:00
|
|
|
|
2019-12-15 21:16:55 +00:00
|
|
|
const { releases } = await graphql(`
|
|
|
|
query Releases {
|
2019-12-15 04:42:51 +00:00
|
|
|
releases(orderBy: DATE_DESC) {
|
|
|
|
id
|
|
|
|
title
|
|
|
|
description
|
|
|
|
date
|
|
|
|
duration
|
|
|
|
createdAt
|
|
|
|
shootId
|
|
|
|
url
|
|
|
|
actors: actorsAssociateds {
|
|
|
|
actor {
|
|
|
|
id
|
|
|
|
name
|
|
|
|
slug
|
2019-12-15 21:16:55 +00:00
|
|
|
birthdate
|
|
|
|
originCountry: countryByBirthCountryAlpha2 {
|
|
|
|
alpha2
|
|
|
|
name
|
|
|
|
alias
|
|
|
|
}
|
|
|
|
avatar: actorsMediasByTargetId(condition: { role: "avatar" }) {
|
|
|
|
id
|
|
|
|
thumbnail
|
|
|
|
path
|
|
|
|
mime
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
poster: releasesMediasByTargetId(condition: { role: "poster" }) {
|
|
|
|
mime
|
|
|
|
id
|
|
|
|
index
|
|
|
|
path
|
|
|
|
thumbnail
|
|
|
|
role
|
|
|
|
}
|
|
|
|
tags: releasesTagsByTargetId {
|
|
|
|
tag {
|
|
|
|
name
|
|
|
|
priority
|
|
|
|
slug
|
|
|
|
id
|
|
|
|
}
|
|
|
|
}
|
|
|
|
site {
|
|
|
|
id
|
|
|
|
name
|
|
|
|
slug
|
|
|
|
url
|
|
|
|
network {
|
|
|
|
id
|
|
|
|
name
|
|
|
|
slug
|
|
|
|
url
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
`);
|
|
|
|
|
|
|
|
return releases.map(release => curateRelease(release));
|
|
|
|
}
|
|
|
|
|
|
|
|
async function fetchReleaseById({ _commit }, releaseId) {
|
|
|
|
// const release = await get(`/releases/${releaseId}`);
|
|
|
|
|
|
|
|
const { release } = await graphql(`
|
|
|
|
query Release($releaseId:Int!) {
|
|
|
|
release(id: $releaseId) {
|
|
|
|
id
|
|
|
|
title
|
|
|
|
description
|
|
|
|
date
|
|
|
|
duration
|
|
|
|
createdAt
|
|
|
|
shootId
|
|
|
|
url
|
|
|
|
actors: actorsAssociateds {
|
|
|
|
actor {
|
|
|
|
id
|
|
|
|
name
|
|
|
|
slug
|
|
|
|
birthdate
|
|
|
|
originCountry: countryByBirthCountryAlpha2 {
|
2019-12-15 04:42:51 +00:00
|
|
|
alpha2
|
|
|
|
name
|
2019-12-15 21:16:55 +00:00
|
|
|
alias
|
2019-12-15 04:42:51 +00:00
|
|
|
}
|
|
|
|
avatar: actorsMediasByTargetId(condition: { role: "avatar" }) {
|
|
|
|
id
|
|
|
|
thumbnail
|
|
|
|
path
|
|
|
|
mime
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
poster: releasesMediasByTargetId(condition: { role: "poster" }) {
|
|
|
|
mime
|
|
|
|
id
|
|
|
|
index
|
|
|
|
path
|
|
|
|
thumbnail
|
|
|
|
role
|
|
|
|
}
|
2019-12-15 21:16:55 +00:00
|
|
|
photos: releasesMediasByTargetId(condition: { role: "photo" }) {
|
|
|
|
mime
|
|
|
|
id
|
|
|
|
index
|
|
|
|
path
|
|
|
|
thumbnail
|
|
|
|
role
|
|
|
|
}
|
|
|
|
trailer: releasesMediasByTargetId(condition: { role: "trailer" }) {
|
2019-12-15 04:42:51 +00:00
|
|
|
mime
|
|
|
|
id
|
|
|
|
index
|
|
|
|
path
|
|
|
|
thumbnail
|
|
|
|
role
|
|
|
|
}
|
|
|
|
tags: releasesTagsByTargetId {
|
|
|
|
tag {
|
|
|
|
name
|
|
|
|
priority
|
|
|
|
slug
|
|
|
|
id
|
|
|
|
}
|
|
|
|
}
|
|
|
|
site {
|
|
|
|
id
|
|
|
|
name
|
|
|
|
slug
|
|
|
|
url
|
|
|
|
network {
|
|
|
|
id
|
|
|
|
name
|
|
|
|
slug
|
|
|
|
url
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2019-12-15 21:16:55 +00:00
|
|
|
`, {
|
|
|
|
releaseId: Number(releaseId),
|
|
|
|
});
|
2019-11-15 01:37:17 +00:00
|
|
|
|
2019-12-15 21:16:55 +00:00
|
|
|
return curateRelease(release);
|
2019-11-15 01:37:17 +00:00
|
|
|
}
|
|
|
|
|
2019-06-03 03:31:38 +00:00
|
|
|
return {
|
|
|
|
fetchReleases,
|
2019-11-15 01:37:17 +00:00
|
|
|
fetchReleaseById,
|
2019-06-03 03:31:38 +00:00
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
export default initReleasesActions;
|