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();