Clase: |
net.hrider.api.usecases.GetReports.java |
Este ejemplo muestra cómo obtener los informes disponibles para una evaluación concreta y como descargar su contenido.
Como en los ejemplos anteriores, utilizamos el enlace a la compañía y a la evaluación para obtener ambos recursos 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);
Siguiendo el enlace
reports de la evaluación obtenemos todos los informes que
están disponibles para esa evaluación:
ReportsCollection collection = service.get(ReportsCollection.class, appraisal.getLinks().getReports());
List<Report> reports = collection.getEmbedded().getReports();
printReports(reports);
Para una evaluación de feedback obtenemos este resultado:
ID Description Mimetypes
--------------------------- --------------------------------------- ---------------------------------
survey-list Survey list text/csv,application/vnd.ms-excel
feedback-reports Individual reports for feedback appra... application/json
feedback-results Individual results list for feedback ... text/csv,application/vnd.ms-excel
feedback-results-jobs Results by jobs for feedback appraisal text/csv,application/vnd.ms-excel
feedback-results-gender Results by gender for feedback appraisal text/csv,application/vnd.ms-excel
feedback-results-age Results by age for feedback appraisal text/csv,application/vnd.ms-excel
feedback-results-antiquity Results by seniority ranges for feedb... text/csv,application/vnd.ms-excel
feedback-detail Individual results detailed by indica... text/csv,application/vnd.ms-excel
feedback-group-detail Individual results detailed by indica... text/csv,application/vnd.ms-excel
feedback-action-plan Action plan objectives list for each ... text/csv,application/vnd.ms-excel
Cada informe contiene un ID, una descripción de qué contiene el informe y los tipos de contenido
que se soportan en la descarga.
Por ejemplo, el segundo informe, con ID
feedback-results
puede descargarse tanto en
Excel como
en
CSV e incluye la lista de resultados individuales para una evaluación de feedback.
El siguiente fragmento de código descarga el informe en Excel y lo guarda en un fichero:
Report report = collection.getEmbedded().findReport("feedback-results");
InputStream in = service.get(InputStream.class, report.getLinks().getSelf(),
net.hrider.api.Constants.MIMETYPE_EXCEL);
try (FileOutputStream fout = new FileOutputStream(new File(outputDir, "feedback-results.xls"))) {
saveToFile(in, fout);
} catch (IOException ex) {
LOG.log(Level.SEVERE, "error saving file", ex);
}
Alternativamente podríamos haber creado el enlace manualmente utilizando el ID del informe.
En este ejemplo la URI al informe sería (sustituyendo 'companyId' y 'appraisalId' por sus correespondientes IDs):
https://dev.hrider.net/api/v1/companies/companyId/appraisals/appraisalId/reports/feedback-results