import { NextFunction, Request, Response } from "express"; import isLength from "validator/lib/isLength"; import { asyncWrap } from "../helpers"; import { mainimgDb } from "../db"; import { TypedRequest } from "../types"; import { ObjectId } from "mongoose"; import formidable from "formidable"; import { TypedRequestAuth } from "./auth.controller"; export const createMainimg = asyncWrap(async (reqExp, res) => { const req = reqExp as TypedRequestAuth<{ userId: ObjectId }>; const { userId } = req.auth; const form = formidable({ uploadDir: "uploads", keepExtensions: true, multiples: false, }); form.parse(req, async (err, fields, files) => { if (!Array.isArray(files.mainimg)) { //파일 좁히기 중 if ( !( Array.isArray(fields.city) || Array.isArray(fields.title) || Array.isArray(fields.theme) ) ) { const city = fields.city; const title = fields.title; const theme = fields.theme; const originalfilename = files.mainimg?.originalFilename; const newfilename = files.mainimg.newFilename; if (!(originalfilename === null || newfilename === undefined)) { const imgRes = await mainimgDb.createMainimg( { city, title, theme }, { originalfilename, newfilename, picturepath: files.mainimg.filepath, } ); console.log(imgRes); return res.json(imgRes); } else { return res.send("에러"); } } } }); }); export const getMainimg = asyncWrap(async (req, res) => { const mainimgs = await mainimgDb.getMainimg(); return res.json(mainimgs); }); export const deleteMainimg = asyncWrap(async (req, res) => { const { imgId } = req.params; const deleteCount = await mainimgDb.deleteOneMainimg(imgId); console.log(deleteCount); return res.json(deleteCount); }); export const updateMainimg = asyncWrap(async (reqExp, res) => { const req = reqExp as TypedRequest; // const { id } = reqExp.params; const { id, theme, city, title } = req.body; const { updatemainimg }: { updatemainimg: formidable.File } = req.files; console.log("전부 제대로", id, theme, city, title, updatemainimg); if (updateMainimg === undefined) { const img = await mainimgDb.updateOneMainimg(id, theme, city, title); return res.json(img); } else { const img = await mainimgDb.updateOneMainimg( id, theme, city, title, updatemainimg ); return res.json(img); } }); // const form = formidable({ // uploadDir: "uploads", // keepExtensions: true, // multiples: false, // }); // form.parse(req, (err, fields, files) => { // if (!Array.isArray(files.updatemainimg)) { // //파일 좁히기 중 // if ( // !( // Array.isArray(fields.id) || // Array.isArray(fields.city) || // Array.isArray(fields.title) || // Array.isArray(fields.theme) // ) // ) { // const id = fields.id; // const city = fields.city; // const title = fields.title; // const theme = fields.theme; // console.log("error"); // if (!(files.updatemainimg === undefined)) { // const originalfilename = files.updatemainimg?.originalFilename; // const newfilename = files.updatemainimg.newFilename; // if (!(originalfilename === null || newfilename === undefined)) { // const imgRes = mainimgDb.updateOneMainimg( // id, // theme, // city, // title, // // fileInfo // originalfilename, // newfilename // ); // return res.json(imgRes); // } // } else { // const imgRes = mainimgDb.updateOneMainimg(id, theme, city, title); // return res.json(imgRes); // } // } // } // }); // });