Added stash GraphQL mutations. Added movies to GraphQL queries. Moved key management to profile page, only for approved users.
This commit is contained in:
@@ -13,6 +13,12 @@ import {
|
||||
fetchScenesByIdGraphql,
|
||||
} from './scenes.js';
|
||||
|
||||
import {
|
||||
moviesSchema,
|
||||
fetchMoviesGraphql,
|
||||
fetchMoviesByIdGraphql,
|
||||
} from './movies.js';
|
||||
|
||||
import {
|
||||
entitiesSchema,
|
||||
fetchEntitiesGraphql,
|
||||
@@ -25,20 +31,39 @@ import {
|
||||
fetchActorsByIdGraphql,
|
||||
} from './actors.js';
|
||||
|
||||
import {
|
||||
stashesSchema,
|
||||
fetchUserStashesGraphql,
|
||||
fetchStashGraphql,
|
||||
createStashGraphql,
|
||||
updateStashGraphql,
|
||||
removeStashGraphql,
|
||||
stashSceneGraphql,
|
||||
unstashSceneGraphql,
|
||||
stashActorGraphql,
|
||||
unstashActorGraphql,
|
||||
stashMovieGraphql,
|
||||
unstashMovieGraphql,
|
||||
} from './stashes.js';
|
||||
|
||||
import { verifyKey } from '../auth.js';
|
||||
|
||||
const schema = buildSchema(`
|
||||
type Query {
|
||||
movies(
|
||||
limit: Int = 30
|
||||
): ReleasesResult
|
||||
_: Boolean
|
||||
}
|
||||
|
||||
type Mutation {
|
||||
_: Boolean
|
||||
}
|
||||
|
||||
scalar Date
|
||||
|
||||
${scenesSchema}
|
||||
${moviesSchema}
|
||||
${actorsSchema}
|
||||
${entitiesSchema}
|
||||
${stashesSchema}
|
||||
`);
|
||||
|
||||
const DateTimeScalar = new GraphQLScalarType({
|
||||
@@ -71,6 +96,10 @@ export async function graphqlApi(req, res) {
|
||||
|
||||
await verifyKey(req.headers['api-user'], req.headers['api-key'], req);
|
||||
|
||||
req.user = { // eslint-disable-line no-param-reassign
|
||||
id: Number(req.headers['api-user']),
|
||||
};
|
||||
|
||||
const data = await graphql({
|
||||
schema,
|
||||
source: req.body.query,
|
||||
@@ -80,9 +109,13 @@ export async function graphqlApi(req, res) {
|
||||
DateScalar,
|
||||
},
|
||||
rootValue: {
|
||||
// queries
|
||||
scenes: async (query) => fetchScenesGraphql(query, req),
|
||||
scene: async (query) => fetchScenesByIdGraphql(query, req),
|
||||
scenesById: async (query) => fetchScenesByIdGraphql(query, req),
|
||||
movies: async (query) => fetchMoviesGraphql(query, req),
|
||||
movie: async (query) => fetchMoviesByIdGraphql(query, req),
|
||||
moviesById: async (query) => fetchMoviesByIdGraphql(query, req),
|
||||
actors: async (query) => fetchActorsGraphql(query, req),
|
||||
actor: async (query, args, info) => fetchActorsByIdGraphql(query, req, info),
|
||||
actorsById: async (query, args, info) => fetchActorsByIdGraphql(query, req, info),
|
||||
@@ -90,6 +123,18 @@ export async function graphqlApi(req, res) {
|
||||
entity: async (query, args, info) => fetchEntitiesByIdGraphql(query, req, info),
|
||||
entitiesBySlug: async (query, args, info) => fetchEntitiesByIdGraphql(query, req, info),
|
||||
entitiesById: async (query, args, info) => fetchEntitiesByIdGraphql(query, req, info),
|
||||
stashes: async (query) => fetchUserStashesGraphql(query, req),
|
||||
stash: async (query) => fetchStashGraphql(query, req),
|
||||
// mutation
|
||||
createStash: async (query) => createStashGraphql(query, req),
|
||||
updateStash: async (query) => updateStashGraphql(query, req),
|
||||
removeStash: async (query) => removeStashGraphql(query, req),
|
||||
stashScene: async (query) => stashSceneGraphql(query, req),
|
||||
unstashScene: async (query) => unstashSceneGraphql(query, req),
|
||||
stashActor: async (query) => stashActorGraphql(query, req),
|
||||
unstashActor: async (query) => unstashActorGraphql(query, req),
|
||||
stashMovie: async (query) => stashMovieGraphql(query, req),
|
||||
unstashMovie: async (query) => unstashMovieGraphql(query, req),
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user