File: //home/ekspardev/nokta-logo-entegrasyon/app.js
const express = require('express');
const multer = require('multer');
const path = require('path');
require('dotenv').config({ path: path.resolve(__dirname, './.prod.env') });
const { convertXmlInvoiceNumbers, convertXmlInvoiceNumbersForSales } = require('./convert-xml.controller');
const app = express();
const upload = multer({ dest: 'uploads/' });
app.use(express.static('public'));
app.get('/', (req, res) => {
res.json({ messageBuy: null, errorBuy: null, messageSales: null, errorSales: null });
});
app.post('/convert', upload.single('xmlFile'), (req, res) => {
if (!req.file) {
return res.json({ messageBuy: null, errorBuy: 'Dosya yüklenmedi', messageSales: null, errorSales: 'Dosya yüklenmedi' });
}
const inputFile = req.file.path;
const islemTuru = req.body.islemTuru;
let outputFile, convertFunction, message, error, downloadLink;
if (islemTuru === 'alis') {
outputFile = path.join(__dirname, 'public', 'converted-alis.xml');
convertFunction = convertXmlInvoiceNumbers;
message = 'messageBuy';
error = 'errorBuy';
downloadLink = process.env.RETURN_URL + 'download-buy';
} else {
outputFile = path.join(__dirname, 'public', 'converted-satis.xml');
convertFunction = convertXmlInvoiceNumbersForSales;
message = 'messageSales';
error = 'errorSales';
downloadLink = process.env.RETURN_URL + 'download-sales';
}
try {
convertFunction(inputFile, outputFile);
res.json({
success: true, message: 'Dönüştürme başarılı', islemTuru, downloadLink
});
} catch (err) {
res.json({ success: false, error: err.message, islemTuru });
}
});
app.get('/download-buy', (req, res) => {
const file = path.join(__dirname, 'public', 'converted-alis.xml');
res.download(file);
});
app.get('/download-sales', (req, res) => {
const file = path.join(__dirname, 'public', 'converted-satis.xml');
res.download(file);
});
const PORT = process.env.PORT || null;
app.listen(PORT);