1
0
mirror of https://github.com/xuthus83/pigallery2.git synced 2024-11-03 21:04:03 +08:00
pigallery2/backend/routes/PersonRouter.ts

63 lines
1.8 KiB
TypeScript
Raw Normal View History

2019-02-15 07:25:55 +08:00
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';
2019-03-04 04:17:42 +08:00
import {Config} from '../../common/config/private/Config';
2019-02-15 07:25:55 +08:00
export class PersonRouter {
public static route(app: Express) {
2019-03-04 04:17:42 +08:00
this.updatePerson(app);
2019-02-15 07:25:55 +08:00
this.addPersons(app);
this.getPersonThumbnail(app);
}
2019-03-04 04:17:42 +08:00
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
);
}
2019-02-15 07:25:55 +08:00
private static addPersons(app: Express) {
app.get(['/api/person'],
// common part
2019-02-15 07:25:55 +08:00
AuthenticationMWs.authenticate,
AuthenticationMWs.authorise(UserRoles.User),
VersionMWs.injectGalleryVersion,
// specific part
2019-02-15 07:25:55 +08:00
PersonMWs.listPersons,
PersonMWs.addSamplePhotoForAll,
ThumbnailGeneratorMWs.addThumbnailInfoForPersons,
PersonMWs.removeSamplePhotoForAll,
2019-02-15 07:25:55 +08:00
RenderingMWs.renderResult
);
}
private static getPersonThumbnail(app: Express) {
app.get(['/api/person/:name/thumbnail'],
// common part
2019-02-15 07:25:55 +08:00
AuthenticationMWs.authenticate,
AuthenticationMWs.authorise(UserRoles.User),
VersionMWs.injectGalleryVersion,
// specific part
2019-02-15 07:25:55 +08:00
PersonMWs.getSamplePhoto,
ThumbnailGeneratorMWs.generatePersonThumbnail,
RenderingMWs.renderFile
);
}
}