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