diff --git a/backend/Input_validators/ValidateResume.js b/backend/Input_validators/ValidateResume.js index 9688a241..9b08bb8a 100644 --- a/backend/Input_validators/ValidateResume.js +++ b/backend/Input_validators/ValidateResume.js @@ -5,16 +5,6 @@ const { handleValidationError } = require("./ValidateQuestions"); // Schemas // ========================================== -const mongoose = require("mongoose"); -const { handleValidationError } = require('./ValidateQuestions') - -const objectId = (label) => - z - .string() - .min(1, `${label} is required`) - .refine((v) => mongoose.isValidObjectId(v), "Invalid ObjectId format"); - -// Schema for compileResume request const compileResumeSchema = z.object({ code: z .string({ @@ -38,6 +28,15 @@ const analyzeResumeSchema = z.object({ }); const saveResumeSchema = z.object({ + title: z.string({ + required_error: "Title is required", + invalid_type_error: "Title must be a string", + }).min(1, "Title is required"), + latexCode: z.string({ + required_error: "LaTeX code is required", + invalid_type_error: "LaTeX code must be a string", + }).min(1, "LaTeX code is required"), + resumeId: z.string().optional(), title: z .string({ required_error: "Title is required", @@ -80,11 +79,18 @@ const validate = (schema) => (req, res, next) => { // Middleware for compileResume const validateCompileResume = validate(compileResumeSchema); +// Middleware for analyzeResume (includes file check) // Middleware for analyzeResume (validates schema + checks file upload) const validateAnalyzeResume = (req, res, next) => { const result = analyzeResumeSchema.safeParse(req.body || {}); if (!result.success) { return handleValidationError(res, result.error); + } + if (!req.file) { + return res + .status(400) + .json({ success: false, message: "No resume file uploaded" }); + } // Middleware for analyzeResume const validateAnalyzeResume = async (req, res, next) => { try {