import { graphql, get } from '../api'; function curateActor(actor) { const curatedActor = { ...actor, avatar: actor.avatar[0], origin: { country: actor.originCountry, }, }; return curatedActor; } function initActorActions(store, _router) { async function fetchActorBySlug(actorSlug) { const { actor } = await graphql(` query Actor($actorSlug:String!) { actor: actorBySlug(slug:$actorSlug) { id name slug avatar: actorsMediasByTargetId(condition: { role:"avatar" }) { thumbnail } originCountry: countryByBirthCountryAlpha2 { alpha2 name alias } aliases: actorsByAliasFor { id name slug } } } `, { actorSlug, }); return curateActor(actor); } async function fetchActors({ _commit }, { actorSlug, limit = 100 }) { if (actorSlug) { return fetchActorBySlug(actorSlug); } const { actors } = await graphql(` query Actors($limit:Int) { actors(first:$limit) { id name slug avatar: actorsMediasByTargetId(condition: { role:"avatar" }) { thumbnail } originCountry: countryByBirthCountryAlpha2 { alpha2 name alias } } } `, { limit, }); console.log(actors); return actors.map(actor => curateActor(actor)); } async function fetchActorReleases({ _commit }, actorId) { const releases = await get(`/actors/${actorId}/releases`, { filter: store.state.ui.filter, after: store.getters.after, before: store.getters.before, }); return releases; } return { fetchActors, fetchActorReleases, }; } export default initActorActions;