Skip to content

Commit

Permalink
feat: add the model route
Browse files Browse the repository at this point in the history
  • Loading branch information
polyesterswing committed Jan 26, 2025
1 parent 867c612 commit 079d07b
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 0 deletions.
26 changes: 26 additions & 0 deletions art-gallery/app/controllers/art.controller.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ const Theme = require("../../models/theme");
const User = require("../../models/user");
const fs = require("fs");
const slugify = require("../utils/slugify");
const stylizeImages = require("../utils/style-transfer");

const index = async (req, res) => {
try {
Expand Down Expand Up @@ -218,6 +219,30 @@ const like = async (req, res) => {
}
};

const model = async (req, res) => {
try {
if (!req.files || !Object.hasOwn(req.files, "content_image") || !Object.hasOwn(req.files, "style_image")) {
return res.status(400).json({
status: "error",
message: "Image is required.",
});
}

const styled_image = await stylizeImages(req.files["content_image"][0], req.files["style_image"][0]);

res.set('Content-Type', 'image/jpeg');
res.status(201).send(styled_image);

} catch (e) {
console.log(e);

return res.status(500).json({
status: "error",
message: "Something went wrong.",
});
}
}

const create = async (req, res) => {
try {
let { title, description, theme } = await req.body;
Expand Down Expand Up @@ -424,4 +449,5 @@ module.exports = {
like,
publish,
gallery,
model,
};
17 changes: 17 additions & 0 deletions art-gallery/routes/art.routes.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
const { Router } = require("express");
const router = Router();
const multer = require("multer");
const uploader = require("../app/middlewares/uploader.middleware");
const { setPath } = require("../app/middlewares/art.middleware");
const { getUser } = require("../app/middlewares/auth.middleware");
Expand All @@ -13,6 +14,7 @@ const {
remove,
publish,
gallery,
model,
} = require("../app/controllers/art.controller");
const convertToWebP = require("../app/middlewares/converter.middleware");

Expand All @@ -26,6 +28,21 @@ router.post(
create
);

const memoryStorage = multer.memoryStorage();
const uploadToMemory = multer({ storage: memoryStorage });

router.post(
"/model",
getUser,
setPath,
uploadToMemory.fields([
{ name: "content_image", maxCount: 1 },
{ name: "style_image", maxCount: 1 }
]),
convertToWebP,
model
);

router.post("/like/:slug", getUser, like);
router.post("/publish/:slug", getUser, publish);

Expand Down

0 comments on commit 079d07b

Please sign in to comment.