forked from DebaucheryLibrarian/traxxx
Added sections and pagination to stash page.
This commit is contained in:
@@ -2,33 +2,46 @@
|
||||
|
||||
const { makeExtendSchemaPlugin, gql } = require('graphile-utils');
|
||||
|
||||
function isFavorited(parent) {
|
||||
if (!parent['@stashes'] || (parent['@stashes'].length > 0 && typeof parent['@stashes'][0]['@stash'].primary === 'undefined')) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return parent['@stashes'].some(({ '@stash': stash }) => stash.primary);
|
||||
}
|
||||
|
||||
function isStashed(parent, args) {
|
||||
if (!parent['@stashes'] || (parent['@stashes'].length > 0 && typeof parent['@stashes'][0]['@stash'].primary === 'undefined')) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (args.includeFavorites) {
|
||||
return parent['@stashes'].length > 0;
|
||||
}
|
||||
|
||||
return parent['@stashes'].some(({ '@stash': stash }) => !stash.primary);
|
||||
}
|
||||
|
||||
const schemaExtender = makeExtendSchemaPlugin(_build => ({
|
||||
typeDefs: gql`
|
||||
extend type Release {
|
||||
isFavorited: Boolean @requires(columns: ["stashesScenesBySceneId"])
|
||||
isStashed(includeFavorites: Boolean = false): Boolean @requires(columns: ["stashesScenesBySceneId"])
|
||||
}
|
||||
|
||||
extend type Movie {
|
||||
isFavorited: Boolean @requires(columns: ["stashesMovies"])
|
||||
isStashed(includeFavorites: Boolean = false): Boolean @requires(columns: ["stashesMovies"])
|
||||
}
|
||||
`,
|
||||
resolvers: {
|
||||
Release: {
|
||||
isFavorited(parent) {
|
||||
if (!parent['@stashes'] || (parent['@stashes'].length > 0 && typeof parent['@stashes'][0]['@stash'].primary === 'undefined')) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return parent['@stashes'].some(({ '@stash': stash }) => stash.primary);
|
||||
},
|
||||
isStashed(parent, args) {
|
||||
if (!parent['@stashes'] || (parent['@stashes'].length > 0 && typeof parent['@stashes'][0]['@stash'].primary === 'undefined')) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (args.includeFavorites) {
|
||||
return parent['@stashes'].length > 0;
|
||||
}
|
||||
|
||||
return parent['@stashes'].some(({ '@stash': stash }) => !stash.primary);
|
||||
},
|
||||
isFavorited,
|
||||
isStashed,
|
||||
},
|
||||
Movie: {
|
||||
isFavorited,
|
||||
isStashed,
|
||||
},
|
||||
},
|
||||
}));
|
||||
|
||||
Reference in New Issue
Block a user