From cff64fea0f9e5dc5577569fbf139e6615af743d2 Mon Sep 17 00:00:00 2001
From: swostikpati <swostikpati@gmail.com>
Date: Mon, 27 Nov 2023 22:19:41 -0500
Subject: [PATCH] added unique file naming in multer

also implemented file removal from create request
---
 back-end/src/routes/createIssue.js            | 31 ++++++++++++-------
 .../student/CreateRequest/CreateRequest.js    |  7 ++++-
 2 files changed, 25 insertions(+), 13 deletions(-)

diff --git a/back-end/src/routes/createIssue.js b/back-end/src/routes/createIssue.js
index 5d76b1f..6a6b368 100644
--- a/back-end/src/routes/createIssue.js
+++ b/back-end/src/routes/createIssue.js
@@ -1,19 +1,26 @@
-import multer from 'multer';
-import { createIssueHandler } from '../controllers/createIssueHandler.js';
-import express from 'express';
+import multer from "multer";
+import { createIssueHandler } from "../controllers/createIssueHandler.js";
+import express from "express";
 
 const router = express.Router();
 
 const storage = multer.diskStorage({
-    destination: function(req, file, cb) {
-      cb(null, 'uploads/');
-    },
-    filename: function (req, file, cb) {
-        cb(null, file.originalname);
-      }
-  });
-const upload = multer({ storage: storage });
+  destination: function (req, file, cb) {
+    cb(null, "uploads/");
+  },
+  filename: function (req, file, cb) {
+    // Get the current time
+    const currentTime = new Date().toISOString().replace(/:/g, "-");
+    // Append the current time to the original filename
+    cb(null, currentTime + "-" + file.originalname);
+  }
+});
+const upload = multer({ storage });
 
-router.post('/:studentNetID', upload.array('uploadedFiles'), createIssueHandler);
+router.post(
+  "/:studentNetID",
+  upload.array("uploadedFiles"),
+  createIssueHandler
+);
 
 export default router;
diff --git a/front-end/src/components/student/CreateRequest/CreateRequest.js b/front-end/src/components/student/CreateRequest/CreateRequest.js
index fa2aaf2..d388ba4 100644
--- a/front-end/src/components/student/CreateRequest/CreateRequest.js
+++ b/front-end/src/components/student/CreateRequest/CreateRequest.js
@@ -18,6 +18,11 @@ export function CreateRequest({ isVisible, onClose, departmentOptions, studentNa
   const handleFileChange = (event) => {
     setSelectedFiles([...selectedFiles, ...Array.from(event.target.files)]);
   };
+  const handleFileRemove = (fileIndex) => {
+    // Filter out the file at the specified index
+    const newSelectedFiles = selectedFiles.filter((_, index) => index !== fileIndex);
+    setSelectedFiles(newSelectedFiles);
+};
   const handleFormSubmit = async (e) => {
     e.preventDefault();
     const formData = new FormData(e.target);
@@ -134,7 +139,7 @@ export function CreateRequest({ isVisible, onClose, departmentOptions, studentNa
           <ul className="file-list">
           {selectedFiles.length > 0 ? (
            selectedFiles.map((file, index) => {
-          return <li key={index}>{file.name}</li>;
+          return <li key={index} onClick={() => handleFileRemove(index)}>{file.name}</li>;
   })
 ) : (
   <li>No files uploaded</li>