Added stash GraphQL mutations. Added movies to GraphQL queries. Moved key management to profile page, only for approved users.

This commit is contained in:
2025-03-31 06:14:56 +02:00
parent 09bba4fe1e
commit 1025285796
14 changed files with 721 additions and 235 deletions

View File

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