Files
yourpart3/backend/controllers/contactController.js
Torsten Schulz (local) 1ab9407e79
All checks were successful
Deploy to production / deploy (push) Successful in 2m56s
Refactor code structure for improved readability and maintainability; optimize performance across multiple modules.
2026-07-21 09:08:15 +02:00

30 lines
1008 B
JavaScript
Executable File

import ContactService from '../services/ContactService.js';
import Joi from 'joi';
class ContactController {
constructor() {
this.addContactMessage = this.addContactMessage.bind(this);
}
async addContactMessage(req, res) {
const schema = Joi.object({
email: Joi.string().email().required(),
name: Joi.string().min(1).max(255).required(),
message: Joi.string().min(1).max(2000).required(),
acceptDataSave: Joi.boolean().required()
});
const { error, value } = schema.validate(req.body);
if (error) {
return res.status(400).json({ error: error.details[0].message });
}
try {
await ContactService.addContactMessage(value.email, value.name, value.message, value.acceptDataSave);
res.status(200).json({ status: 'ok' });
} catch (error) {
res.status(409).json({ error: error.message });
}
}
}
export default ContactController;