package com.example.pdfsigner.controller;

import com.example.pdfsigner.service.PDFSigner;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.*;

@RestController
public class SignController {

    @Value("${cert.path}")
    private String certPath;

    @Value("${cert.password}")
    private String certPassword;

    @PostMapping("/firmar")
    public byte[] firmar(@RequestParam("file") MultipartFile file, 
                         @RequestParam("reason") String reason,
                         @RequestParam("dni") String dni, // Añadido dni
                         @RequestParam("beneficiario") String beneficiario) throws Exception {

        // Guardamos el archivo recibido en el servidor
        File inputFile = new File("/home/chatbot/public_html/uploads/input.pdf");
        file.transferTo(inputFile);

        File outputFile = new File("/home/chatbot/public_html/uploads/signed.pdf");

        // Llamamos al servicio de firma
        PDFSigner signer = new PDFSigner(certPath, certPassword);
        signer.signPDF(inputFile, outputFile, reason, "Servidor Fenercom", dni, beneficiario); // Pasamos los nuevos parámetros

        byte[] signedBytes = java.nio.file.Files.readAllBytes(outputFile.toPath());

        // Eliminamos los archivos temporales
        inputFile.delete();
        outputFile.delete();

        return signedBytes;
    }
}
