services/ContactService.jsjavascript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const UserService_1 = __importDefault(require("./UserService.js"));
const MailService_1 = __importDefault(require("./MailService.js"));
const errors_1 = require("../utils/errors.js");
const winston_1 = require("../plugins/winston.js");
/**
* Service for contact operations.
* Handles logic related to user messages to the support team.
*
* @class ContactService
*/
class ContactService {
async sendMessage(name, email, subject, message, category, locale, UserId) {
let user = null;
if (UserId) {
await UserService_1.default.findById(UserId)
.then((foundUser) => (user = foundUser))
.catch((e) => {
winston_1.logger.warn(e);
});
}
return Promise.all([
MailService_1.default.sendContactMessage(name, email, subject, message, category, user, locale),
MailService_1.default.sendContactNotification(name, email, subject, message, category, locale),
])
.then(() => {
return "Message received";
})
.catch((err) => {
throw new errors_1.FaultyInputError("Failed to send message: " + err.message);
});
}
}
exports.default = new ContactService();