Added actor profile revisions.

This commit is contained in:
2024-10-22 03:12:42 +02:00
parent b5bef49f73
commit 3967745fb3
31 changed files with 1907 additions and 67 deletions

View File

@@ -1,6 +1,11 @@
import Router from 'express-promise-router';
import {
fetchActors,
fetchActorsById,
fetchActorRevisions,
createActorRevision,
reviewActorRevision,
} from '../actors.js';
export function curateActorsQuery(query) {
@@ -131,11 +136,36 @@ export async function fetchActorsByIdGraphql(query, _req, _info) {
const actors = await fetchActorsById([].concat(query.id, query.ids).filter(Boolean));
const curatedActors = actors.map((actor) => curateGraphqlActor(actor));
console.log(actors);
if (query.ids) {
return curatedActors;
}
return curatedActors[0];
}
async function fetchActorRevisionsApi(req, res) {
const revisions = await fetchActorRevisions(Number(req.params.revisionId) || null, req.query, req.user);
res.send(revisions);
}
async function createActorRevisionApi(req, res) {
await createActorRevision(Number(req.body.actorId), req.body, req.user);
res.status(204).send();
}
async function reviewActorRevisionApi(req, res) {
await reviewActorRevision(Number(req.params.revisionId), req.body.isApproved, req.body, req.user);
res.status(204).send();
}
export const actorsRouter = Router();
actorsRouter.get('/api/actors', fetchActorsApi);
actorsRouter.get('/api/revisions/actors', fetchActorRevisionsApi);
actorsRouter.get('/api/revisions/actors/:revisionId', fetchActorRevisionsApi);
actorsRouter.post('/api/revisions/actors', createActorRevisionApi);
actorsRouter.post('/api/revisions/actors/:revisionId/reviews', reviewActorRevisionApi);

View File

@@ -252,7 +252,7 @@ export const scenesRouter = Router();
scenesRouter.get('/api/scenes', fetchScenesApi);
scenesRouter.get('/api/scenes/:sceneId', fetchSceneApi);
scenesRouter.get('/api/revisions', fetchSceneRevisionsApi);
scenesRouter.get('/api/revisions/:revisionId', fetchSceneRevisionsApi);
scenesRouter.post('/api/revisions', createSceneRevisionApi);
scenesRouter.post('/api/revisions/:revisionId/reviews', reviewSceneRevisionApi);
scenesRouter.get('/api/revisions/scenes', fetchSceneRevisionsApi);
scenesRouter.get('/api/revisions/scenes/:revisionId', fetchSceneRevisionsApi);
scenesRouter.post('/api/revisions/scenes', createSceneRevisionApi);
scenesRouter.post('/api/revisions/scenes/:revisionId/reviews', reviewSceneRevisionApi);

View File

@@ -14,8 +14,8 @@ import errorHandler from './error.js';
import consentHandler from './consent.js';
import { scenesRouter } from './scenes.js';
import { actorsRouter } from './actors.js';
import { fetchActorsApi } from './actors.js';
import { fetchMoviesApi } from './movies.js';
import { fetchEntitiesApi } from './entities.js';
import { fetchTagsApi } from './tags.js';
@@ -144,9 +144,7 @@ export default async function initServer() {
router.use(userRouter);
router.use(stashesRouter);
router.use(scenesRouter);
// ACTORS
router.get('/api/actors', fetchActorsApi);
router.use(actorsRouter);
// MOVIES
router.get('/api/movies', fetchMoviesApi);