Anterior ‹UC: Obtener Informes

Caso de Uso: Informe Individual

Clase: net.hrider.api.usecases.GetPersonalReport.java
Ejemplo de cómo obtener el informe de feedback de un empleado y descargar su PDF.

Como en el ejemplo anterior, utilizamos los IDs de la compañía y de la evaluación para crear enlaces a ambos recursos y obtenerlos mediante una llamada GET:

Link companyLink = root.getLinks().getCompanies().build(companyId);
Company company = service.get(Company.class, companyLink);        
Link appraisalLink = company.getLinks().getAppraisals().build("" + appraisalId);
Appraisal appraisal = service.get(Appraisal.class, appraisalLink);
                    

Para obtener el informe de feedback personal construímos el enlace al informe feedback-reports añadiendo el ID del empleado evaluado:

Link reportLink = appraisal.getLinks().getReports().build("feedback-reports").build(employeeId);
FeedbackReport report = service.get(FeedbackReport.class, reportLink);      
printFeedbackReport(report);


Vemos el resultado obtenido:

Employee            Appraisal           Position            % Achieved Indicators  Score     Gap          
------------------- ------------------- ------------------- ---------------------- --------- ---------
EMP006              POTENTIAL            RRHH                100.0                 86.61     85.2           


Para descargar el informe en PDF realizamos la misma petición GET, esta vez especificando en la cabecera de la petición que el mime type que queremos obtener es application/pdf, y finalmente guardamos el contenido en el directorio de salida:

InputStream in = service.get(InputStream.class, reportLink, net.hrider.api.Constants.MIMETYPE_PDF);
try (FileOutputStream fout = new FileOutputStream(new File(outputDir, "feedback-report.pdf"))) {
    saveToFile(in, fout);
} catch (IOException ex) {
    LOG.log(Level.SEVERE, "error saving file", ex);
}        

Alternativamente, el sistema permite añadir un parámetro en la petición alt con el valor application/pdf en lugar de especificar el mime type en la cabecera. La siguiente llamada sería equivalente:

InputStream in = service.get(InputStream.class, reportLink.addQueryParam("alt", "application/pdf"));



Anterior ‹UC: Obtener Informes