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

@@ -11,66 +11,210 @@ import {
unstashScene,
unstashMovie,
updateStash,
fetchStashByUsernameAndSlug,
} from '../stashes.js';
export const stashesSchema = `
extend type Query {
stashes(username: String): [Stash]
stash(
username: String
stash: String!
): Stash
}
extend type Mutation {
createStash(
name: String!
isPublic: Boolean
): Stash
updateStash(
stash: String!
name: String
isPublic: Boolean
): Stash
removeStash(
stash: String!
): Stash
stashScene(
sceneId: Int!
stash: String!
): Stashed
unstashScene(
sceneId: Int!
stash: String!
): Stashed
stashActor(
actorId: Int!
stash: String!
): Stashed
unstashActor(
actorId: Int!
stash: String!
): Stashed
stashMovie(
movieId: Int!
stash: String!
): Stashed
unstashMovie(
movieId: Int!
stash: String!
): Stashed
}
type Stash {
id: Int
name: String
slug: String
isPublic: Boolean
isPrimary: Boolean
createdAt: Date
}
type Stashed {
id: Int
stashId: Int
sceneId: Int
actorId: Int
movieId: Int
serieId: Int
createdAt: Date
}
`;
export async function fetchUserStashesApi(req, res) {
const stashes = await fetchUserStashes(req.user.id, req.user);
res.send(stashes);
}
export async function fetchUserStashesGraphql(query, req) {
const stashes = await fetchUserStashes(query.username || req.userId, req.user);
return stashes;
}
export async function fetchStashGraphql(query, req) {
const stashes = await fetchStashByUsernameAndSlug(query.username || req.userId, query.stash, req.user);
return stashes;
}
export async function createStashApi(req, res) {
const stash = await createStash(req.body, req.user);
res.send(stash);
}
export async function createStashGraphql(query, req) {
const stash = await createStash(query, req.user);
return stash;
}
export async function updateStashApi(req, res) {
const stash = await updateStash(Number(req.params.stashId), req.body, req.user);
res.send(stash);
}
export async function updateStashGraphql(query, req) {
const stash = await updateStash(query.stash, query, req.user);
return stash;
}
export async function removeStashApi(req, res) {
await removeStash(Number(req.params.stashId), req.user);
res.status(204).send();
}
export async function removeStashGraphql(query, req) {
const removedId = await removeStash(query.stash, req.user);
return removedId;
}
export async function stashActorApi(req, res) {
const stashes = await stashActor(req.body.actorId, Number(req.params.stashId), req.user);
const stashed = await stashActor(req.body.actorId, Number(req.params.stashId), req.user);
res.send(stashes);
res.send(stashed);
}
export async function stashSceneApi(req, res) {
const stashes = await stashScene(req.body.sceneId, Number(req.params.stashId), req.user);
export async function stashActorGraphql(query, req) {
const stashed = await stashActor(query.actorId, query.stash, req.user);
res.send(stashes);
}
export async function stashMovieApi(req, res) {
const stashes = await stashMovie(req.body.movieId, Number(req.params.stashId), req.user);
res.send(stashes);
return stashed;
}
export async function unstashActorApi(req, res) {
const stashes = await unstashActor(Number(req.params.actorId), Number(req.params.stashId), req.user);
const unstashed = await unstashActor(Number(req.params.actorId), Number(req.params.stashId), req.user);
res.send(stashes);
res.send(unstashed);
}
export async function unstashActorGraphql(query, req) {
const stashes = await unstashActor(query.actorId, query.stash, req.user);
return stashes;
}
export async function stashSceneApi(req, res) {
const stashed = await stashScene(req.body.sceneId, Number(req.params.stashId), req.user);
res.send(stashed);
}
export async function stashSceneGraphql(query, req) {
const stashed = await stashScene(query.sceneId, query.stash, req.user);
return stashed;
}
export async function unstashSceneApi(req, res) {
const stashes = await unstashScene(Number(req.params.sceneId), Number(req.params.stashId), req.user);
const unstashed = await unstashScene(Number(req.params.sceneId), Number(req.params.stashId), req.user);
res.send(stashes);
res.send(unstashed);
}
export async function unstashSceneGraphql(query, req) {
const unstashed = await unstashScene(query.sceneId, query.stash, req.user);
return unstashed;
}
export async function stashMovieApi(req, res) {
const stashed = await stashMovie(req.body.movieId, Number(req.params.stashId), req.user);
res.send(stashed);
}
export async function stashMovieGraphql(query, req) {
const stashed = await stashMovie(query.movieId, query.stash, req.user);
return stashed;
}
export async function unstashMovieApi(req, res) {
const stashes = await unstashMovie(Number(req.params.movieId), Number(req.params.stashId), req.user);
const unstashed = await unstashMovie(Number(req.params.movieId), Number(req.params.stashId), req.user);
res.send(stashes);
res.send(unstashed);
}
export async function unstashMovieGraphql(query, req) {
const unstashed = await unstashMovie(query.movieId, query.stash, req.user);
return unstashed;
}
export const router = Router();