Added rudimentary release search.

This commit is contained in:
2020-02-26 01:15:50 +01:00
parent 756ab09ce6
commit 638a71f36c
20 changed files with 356 additions and 58 deletions

View File

@@ -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;

View File

@@ -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,
};
}

View File

@@ -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,