NSFW-API / src /controllers /NsfwController.ts
root
update
dfe9a5e
import {Controller, Post} from 'simple-ts-express-decorators';
import multer, {memoryStorage} from 'multer';
import {Request, Response} from 'express';
import {NsfwImageClassifier} from 'app/NsfwImageClassifier';
const upload = multer({storage: memoryStorage()});
@Controller()
export class NsfwController {
classifier: NsfwImageClassifier;
constructor() {
this.classifier = new NsfwImageClassifier();
}
@Post('/classify', upload.single('image'))
async classify(request: Request, response: Response) {
if (!request.file) {
return response
.status(410)
.json({error: 'Specify image'});
}
const data = await this.classifier.classify(request.file.buffer);
return response.json(data);
}
@Post('/classify-many', upload.array('images', 10))
async classifyMany(request: Request, response: Response) {
if (!request.files || !request.files.length) {
return response
.status(410)
.json({error: 'Specify images'});
}
const buffers = (request.files as Express.Multer.File[]).map(file => file.buffer);
const data = await this.classifier.classifyMany(buffers);
return response.json(data);
}
}