import {AuthenticationMWs} from '../middlewares/user/AuthenticationMWs'; import {Express} from 'express'; import {RenderingMWs} from '../middlewares/RenderingMWs'; import {UserRoles} from '../../common/entities/UserDTO'; import {PersonMWs} from '../middlewares/PersonMWs'; import {ThumbnailGeneratorMWs} from '../middlewares/thumbnail/ThumbnailGeneratorMWs'; import {VersionMWs} from '../middlewares/VersionMWs'; import {Config} from '../../common/config/private/Config'; export class PersonRouter { public static route(app: Express) { this.updatePerson(app); this.addPersons(app); this.getPersonThumbnail(app); } private static updatePerson(app: Express) { app.post(['/api/person/:name'], // common part AuthenticationMWs.authenticate, AuthenticationMWs.authorise(Config.Client.Faces.writeAccessMinRole), VersionMWs.injectGalleryVersion, // specific part PersonMWs.updatePerson, RenderingMWs.renderResult ); } private static addPersons(app: Express) { app.get(['/api/person'], // common part AuthenticationMWs.authenticate, AuthenticationMWs.authorise(UserRoles.User), VersionMWs.injectGalleryVersion, // specific part PersonMWs.listPersons, PersonMWs.addSamplePhotoForAll, ThumbnailGeneratorMWs.addThumbnailInfoForPersons, PersonMWs.removeSamplePhotoForAll, RenderingMWs.renderResult ); } private static getPersonThumbnail(app: Express) { app.get(['/api/person/:name/thumbnail'], // common part AuthenticationMWs.authenticate, AuthenticationMWs.authorise(UserRoles.User), VersionMWs.injectGalleryVersion, // specific part PersonMWs.getSamplePhoto, ThumbnailGeneratorMWs.generatePersonThumbnail, RenderingMWs.renderFile ); } }