forked from DebaucheryLibrarian/traxxx
Added rudimentary release search.
This commit is contained in:
@@ -23,9 +23,9 @@ function curateRelease(release) {
|
||||
actors: [],
|
||||
poster: release.poster && release.poster.media,
|
||||
tags: release.tags ? release.tags.map(({ tag }) => tag) : [],
|
||||
network: release.site.network,
|
||||
};
|
||||
|
||||
if (release.site) curatedRelease.network = release.site.network;
|
||||
if (release.photos) curatedRelease.photos = release.photos.map(({ media }) => media);
|
||||
if (release.covers) curatedRelease.covers = release.covers.map(({ media }) => media);
|
||||
if (release.trailer) curatedRelease.trailer = release.trailer.media;
|
||||
|
||||
@@ -25,6 +25,63 @@ function initReleasesActions(store, _router) {
|
||||
return releases.map(release => curateRelease(release));
|
||||
}
|
||||
|
||||
async function searchReleases({ _commit }, { query, limit = 20 }) {
|
||||
const res = await graphql(`
|
||||
query SearchReleases(
|
||||
$query: String!
|
||||
$limit: Int = 20
|
||||
) {
|
||||
releases: searchReleases(
|
||||
search: $query
|
||||
first: $limit
|
||||
) {
|
||||
id
|
||||
title
|
||||
date
|
||||
url
|
||||
site {
|
||||
id
|
||||
slug
|
||||
name
|
||||
url
|
||||
network {
|
||||
id
|
||||
slug
|
||||
name
|
||||
url
|
||||
}
|
||||
}
|
||||
actors: releasesActors {
|
||||
actor {
|
||||
id
|
||||
slug
|
||||
name
|
||||
}
|
||||
}
|
||||
tags: releasesTags {
|
||||
tag {
|
||||
id
|
||||
name
|
||||
slug
|
||||
}
|
||||
}
|
||||
poster: releasesPosterByReleaseId {
|
||||
media {
|
||||
thumbnail
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
`, {
|
||||
query,
|
||||
limit,
|
||||
});
|
||||
|
||||
if (!res) return [];
|
||||
|
||||
return res.releases.map(release => curateRelease(release));
|
||||
}
|
||||
|
||||
async function fetchReleaseById({ _commit }, releaseId) {
|
||||
// const release = await get(`/releases/${releaseId}`);
|
||||
|
||||
@@ -42,6 +99,7 @@ function initReleasesActions(store, _router) {
|
||||
return {
|
||||
fetchReleases,
|
||||
fetchReleaseById,
|
||||
searchReleases,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ import Actor from '../components/actors/actor.vue';
|
||||
import Actors from '../components/actors/actors.vue';
|
||||
import Tag from '../components/tags/tag.vue';
|
||||
import Tags from '../components/tags/tags.vue';
|
||||
import Search from '../components/search/search.vue';
|
||||
import NotFound from '../components/errors/404.vue';
|
||||
|
||||
Vue.use(VueRouter);
|
||||
@@ -69,6 +70,11 @@ const routes = [
|
||||
component: Tags,
|
||||
name: 'tags',
|
||||
},
|
||||
{
|
||||
path: '/search',
|
||||
component: Search,
|
||||
name: 'search',
|
||||
},
|
||||
{
|
||||
path: '*',
|
||||
component: NotFound,
|
||||
|
||||
Reference in New Issue
Block a user