"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
Object.defineProperty(exports, "__esModule", { value: true });
const fs_1 = require("fs");
class TranslationsController {
    constructor(translationsService) {
        this.translationsService = translationsService;
        this.translationsService = translationsService;
    }
    read(_, res, next) {
        return __awaiter(this, void 0, void 0, function* () {
            try {
                const resp = yield this.translationsService.readTranslations();
                res.send(resp);
            }
            catch (err) {
                next(err);
            }
        });
    }
    get(req, res, next) {
        return __awaiter(this, void 0, void 0, function* () {
            try {
                const resp = yield this.translationsService.byName(req.params.name);
                res.send(resp);
            }
            catch (err) {
                next(`Something went wrong. Perhaps ${req.params.name} is not a valid translation file`);
            }
        });
    }
    update(req, res, next) {
        return __awaiter(this, void 0, void 0, function* () {
            const file = req.params.name + '.json';
            // grab the file and write to it
            let translations = {};
            for (const [key, value] of Object.entries(req.body)) {
                translations[key] = {
                    message: value
                };
            }
            fs_1.writeFileSync('translations/' + file, JSON.stringify(translations));
            const updatedFile = yield this.translationsService.byName(req.params.name + '.json');
            res.send(updatedFile);
        });
    }
}
exports.TranslationsController = TranslationsController;
//# sourceMappingURL=translations.js.map