From 003fad7cd00821410b586fb2f20321cf94e83dc8 Mon Sep 17 00:00:00 2001 From: srgooglo Date: Sun, 16 Oct 2022 18:00:04 +0200 Subject: [PATCH] implement `/indecent_prediction` endpoint --- .../src/controllers/PublicController/index.js | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/packages/server/src/controllers/PublicController/index.js b/packages/server/src/controllers/PublicController/index.js index 5392c250..25927305 100755 --- a/packages/server/src/controllers/PublicController/index.js +++ b/packages/server/src/controllers/PublicController/index.js @@ -3,10 +3,40 @@ import { Schematized } from "../../lib" import { FeaturedWallpaper } from "../../models" +import IndecentPrediction from "../../utils/indecent-prediction" +import downloadFile from "../../utils/download-file" + export default class PublicController extends Controller { static refName = "PublicController" get = { + "/indecent_prediction": { + fn: Schematized({ + select: ["url"], + required: ["url"], + }, async (req, res) => { + const { url } = req.selection + + const download = await downloadFile({ url }) + + const predictions = await IndecentPrediction({ + image: download.destination, + }).catch((err) => { + res.status(500).json({ + error: err.message, + }) + + return null + }) + + // delete cached file + await download.delete() + + if (predictions) { + return res.json(predictions) + } + }) + }, "/posting_policy": { middlewares: ["withOptionalAuthentication"], fn: async (req, res) => {