changing routes and hierarchy of files for memories

This commit is contained in:
Marek Maslowski
2026-04-04 14:01:51 +02:00
parent 504713d920
commit bca82b3f8c
9 changed files with 147 additions and 127 deletions
@@ -1,10 +1,10 @@
import express, { Request, Response, NextFunction } from 'express';
import { db, canAccessTrip } from '../db/database';
import { authenticate } from '../middleware/auth';
import { broadcast } from '../websocket';
import { AuthRequest } from '../types';
import { consumeEphemeralToken } from '../services/ephemeralTokens';
import { getClientIp } from '../services/auditLog';
import { db, canAccessTrip } from '../../db/database';
import { authenticate } from '../../middleware/auth';
import { broadcast } from '../../websocket';
import { AuthRequest } from '../../types';
import { consumeEphemeralToken } from '../../services/ephemeralTokens';
import { getClientIp } from '../../services/auditLog';
import {
getConnectionSettings,
saveImmichSettings,
@@ -14,12 +14,11 @@ import {
searchPhotos,
proxyThumbnail,
proxyOriginal,
isValidAssetId,
listAlbums,
syncAlbumAssets,
getAssetInfo,
} from '../services/immichService';
import { canAccessUserPhoto } from '../services/memoriesService';
} from '../../services/memories/immichService';
import { canAccessUserPhoto } from '../../services/memories/helpersService';
const router = express.Router();
@@ -1,7 +1,7 @@
import express, { Request, Response } from 'express';
import { authenticate } from '../middleware/auth';
import { broadcast } from '../websocket';
import { AuthRequest } from '../types';
import { authenticate } from '../../middleware/auth';
import { broadcast } from '../../websocket';
import { AuthRequest } from '../../types';
import {
getSynologySettings,
updateSynologySettings,
@@ -15,8 +15,8 @@ import {
streamSynologyAsset,
handleSynologyError,
SynologyServiceError,
} from '../services/synologyService';
import { canAccessUserPhoto } from '../services/memoriesService';
} from '../../services/memories/synologyService';
import { canAccessUserPhoto } from '../../services/memories/helpersService';
const router = express.Router();
@@ -1,6 +1,6 @@
import express, { Request, Response } from 'express';
import { authenticate } from '../middleware/auth';
import { AuthRequest } from '../types';
import { authenticate } from '../../middleware/auth';
import { AuthRequest } from '../../types';
import {
listTripPhotos,
listTripAlbumLinks,
@@ -9,14 +9,19 @@ import {
addTripPhotos,
removeTripPhoto,
setTripPhotoSharing,
} from '../services/memoriesService';
} from '../../services/memories/unifiedService';
import immichRouter from './immich';
import synologyRouter from './synology';
const router = express.Router();
router.use('/immich', immichRouter);
router.use('/synologyphotos', synologyRouter);
//------------------------------------------------
// routes for managing photos linked to trip
router.get('/trips/:tripId/photos', authenticate, (req: Request, res: Response) => {
router.get('/unified/trips/:tripId/photos', authenticate, (req: Request, res: Response) => {
const authReq = req as AuthRequest;
const { tripId } = req.params;
const result = listTripPhotos(tripId, authReq.user.id);
@@ -24,7 +29,7 @@ router.get('/trips/:tripId/photos', authenticate, (req: Request, res: Response)
res.json({ photos: result.data });
});
router.post('/trips/:tripId/photos', authenticate, async (req: Request, res: Response) => {
router.post('/unified/trips/:tripId/photos', authenticate, async (req: Request, res: Response) => {
const authReq = req as AuthRequest;
const { tripId } = req.params;
const sid = req.headers['x-socket-id'] as string;
@@ -42,7 +47,7 @@ router.post('/trips/:tripId/photos', authenticate, async (req: Request, res: Res
res.json({ success: true, added: result.data.added });
});
router.put('/trips/:tripId/photos/sharing', authenticate, async (req: Request, res: Response) => {
router.put('/unified/trips/:tripId/photos/sharing', authenticate, async (req: Request, res: Response) => {
const authReq = req as AuthRequest;
const { tripId } = req.params;
const result = await setTripPhotoSharing(
@@ -56,7 +61,7 @@ router.put('/trips/:tripId/photos/sharing', authenticate, async (req: Request, r
res.json({ success: true });
});
router.delete('/trips/:tripId/photos', authenticate, async (req: Request, res: Response) => {
router.delete('/unified/trips/:tripId/photos', authenticate, async (req: Request, res: Response) => {
const authReq = req as AuthRequest;
const { tripId } = req.params;
const result = await removeTripPhoto(tripId, authReq.user.id, req.body?.provider, req.body?.asset_id);
@@ -67,7 +72,7 @@ router.delete('/trips/:tripId/photos', authenticate, async (req: Request, res: R
//------------------------------
// routes for managing album links
router.get('/trips/:tripId/album-links', authenticate, (req: Request, res: Response) => {
router.get('/unified/trips/:tripId/album-links', authenticate, (req: Request, res: Response) => {
const authReq = req as AuthRequest;
const { tripId } = req.params;
const result = listTripAlbumLinks(tripId, authReq.user.id);
@@ -75,7 +80,7 @@ router.get('/trips/:tripId/album-links', authenticate, (req: Request, res: Respo
res.json({ links: result.data });
});
router.post('/trips/:tripId/album-links', authenticate, async (req: Request, res: Response) => {
router.post('/unified/trips/:tripId/album-links', authenticate, async (req: Request, res: Response) => {
const authReq = req as AuthRequest;
const { tripId } = req.params;
const result = createTripAlbumLink(tripId, authReq.user.id, req.body?.provider, req.body?.album_id, req.body?.album_name);
@@ -83,7 +88,7 @@ router.post('/trips/:tripId/album-links', authenticate, async (req: Request, res
res.json({ success: true });
});
router.delete('/trips/:tripId/album-links/:linkId', authenticate, async (req: Request, res: Response) => {
router.delete('/unified/trips/:tripId/album-links/:linkId', authenticate, async (req: Request, res: Response) => {
const authReq = req as AuthRequest;
const { tripId, linkId } = req.params;
const result = removeAlbumLink(tripId, linkId, authReq.user.id);
@@ -91,4 +96,7 @@ router.delete('/trips/:tripId/album-links/:linkId', authenticate, async (req: Re
res.json({ success: true });
});
export default router;