feat: support multi files upload

This commit is contained in:
phegalante
2020-10-22 20:39:03 -03:00
parent e14a8b4a66
commit d82b65f879
4 changed files with 37 additions and 30 deletions

View File

@@ -38,12 +38,16 @@ export const index = async (req: Request, res: Response): Promise<Response> => {
export const store = async (req: Request, res: Response): Promise<Response> => {
const { ticketId } = req.params;
const { body }: MessageData = req.body;
const media = req.file;
const medias = req.files as Express.Multer.File[];
const ticket = await ShowTicketService(ticketId);
if (media) {
await SendWhatsAppMedia({ media, ticket });
if (medias) {
await Promise.all(
medias.map(async (media: Express.Multer.File) => {
await SendWhatsAppMedia({ media, ticket });
})
);
} else {
await SendWhatsAppMessage({ body, ticket });
}

View File

@@ -1,13 +1,22 @@
import { Router } from "express";
import multer from "multer";
import isAuth from "../middleware/isAuth";
import uploadConfig from "../config/upload";
import * as MessageController from "../controllers/MessageController";
const messageRoutes = Router();
const upload = multer(uploadConfig);
messageRoutes.get("/messages/:ticketId", isAuth, MessageController.index);
messageRoutes.post("/messages/:ticketId", isAuth, MessageController.store);
messageRoutes.post(
"/messages/:ticketId",
isAuth,
upload.array("medias"),
MessageController.store
);
messageRoutes.delete("/messages/:messageId", isAuth, MessageController.remove);

View File

@@ -4,11 +4,10 @@ import "express-async-errors";
import express, { Request, Response, NextFunction } from "express";
import cors from "cors";
import cookieParser from "cookie-parser";
import multer from "multer";
import * as Sentry from "@sentry/node";
import "./database";
import uploadConfig from "./config/upload";
import "./database";
import AppError from "./errors/AppError";
import routes from "./routes";
import { initIO } from "./libs/socket";
@@ -16,7 +15,6 @@ import { StartWhatsAppSessions } from "./services/WbotServices/StartWhatsAppSess
Sentry.init({ dsn: process.env.SENTRY_DSN });
const upload = multer(uploadConfig);
const app = express();
app.use(
@@ -28,7 +26,6 @@ app.use(
app.use(cookieParser());
app.use(express.json());
app.use(Sentry.Handlers.requestHandler());
app.use(upload.single("media"));
app.use("/public", express.static(uploadConfig.directory));
app.use(routes);