1212import com .objectcomputing .checkins .services .feedback_answer .FeedbackAnswerServices ;
1313import com .objectcomputing .checkins .services .feedback_template .template_question .TemplateQuestionServices ;
1414import com .objectcomputing .checkins .services .employee_hours .EmployeeHoursServices ;
15+ import com .objectcomputing .checkins .services .file .FileServices ;
16+
1517import io .micronaut .http .MediaType ;
18+ import io .micronaut .http .HttpStatus ;
1619import io .micronaut .http .annotation .Controller ;
20+ import io .micronaut .http .annotation .Body ;
1721import io .micronaut .http .annotation .Post ;
1822import io .micronaut .http .annotation .Get ;
1923import io .micronaut .http .multipart .CompletedFileUpload ;
2731import reactor .core .publisher .Flux ;
2832import reactor .core .scheduler .Schedulers ;
2933import jakarta .validation .constraints .NotNull ;
34+ import jakarta .validation .Valid ;
3035
3136import org .slf4j .Logger ;
3237import org .slf4j .LoggerFactory ;
@@ -51,6 +56,7 @@ public class ReportDataController {
5156 private final FeedbackAnswerServices feedbackAnswerServices ;
5257 private final TemplateQuestionServices templateQuestionServices ;
5358 private final EmployeeHoursServices employeeHoursServices ;
59+ private final FileServices fileServices ;
5460
5561 public ReportDataController (ReportDataServices reportDataServices ,
5662 KudosRepository kudosRepository ,
@@ -61,7 +67,8 @@ public ReportDataController(ReportDataServices reportDataServices,
6167 FeedbackRequestServices feedbackRequestServices ,
6268 FeedbackAnswerServices feedbackAnswerServices ,
6369 TemplateQuestionServices templateQuestionServices ,
64- EmployeeHoursServices employeeHoursServices ) {
70+ EmployeeHoursServices employeeHoursServices ,
71+ FileServices fileServices ) {
6572 this .reportDataServices = reportDataServices ;
6673 this .kudosRepository = kudosRepository ;
6774 this .kudosRecipientRepository = kudosRecipientRepository ;
@@ -72,6 +79,7 @@ public ReportDataController(ReportDataServices reportDataServices,
7279 this .feedbackAnswerServices = feedbackAnswerServices ;
7380 this .templateQuestionServices = templateQuestionServices ;
7481 this .employeeHoursServices = employeeHoursServices ;
82+ this .fileServices = fileServices ;
7583 }
7684
7785 @ Post (uri ="/upload" , consumes = MediaType .MULTIPART_FORM_DATA )
@@ -115,35 +123,22 @@ private String uploadHelper(ReportDataServices.DataType dataType,
115123 }
116124 }
117125
118- @ Get
126+ @ Post ( uri = "/generate" )
119127 @ RequiredPermission (Permission .CAN_CREATE_MERIT_REPORT )
120- public List <ReportDataDTO > get (@ NotNull List <UUID > memberIds ,
121- @ NotNull UUID reviewPeriodId ) {
122- List <ReportDataDTO > list = new ArrayList <ReportDataDTO >();
123- for (UUID memberId : memberIds ) {
124- ReportDataCollation data = new ReportDataCollation (
125- memberId , reviewPeriodId ,
126- kudosRepository ,
127- kudosRecipientRepository ,
128- memberProfileServices ,
129- reviewPeriodServices ,
130- reportDataServices ,
131- feedbackTemplateServices ,
132- feedbackRequestServices ,
133- feedbackAnswerServices ,
134- templateQuestionServices ,
135- employeeHoursServices );
136- list .add (new ReportDataDTO (memberId , reviewPeriodId ,
137- data .getStartDate (), data .getEndDate (),
138- data .getMemberProfile (), data .getKudos (),
139- data .getCompensationHistory (),
140- data .getCurrentInformation (),
141- data .getPositionHistory (),
142- data .getSelfReviews (),
143- data .getReviews (),
144- data .getFeedback (),
145- data .getReportHours ()));
146- }
147- return list ;
128+ public HttpStatus generate (@ Body @ Valid ReportDataDTO dto ) {
129+ MarkdownGeneration markdown =
130+ new MarkdownGeneration (reportDataServices ,
131+ kudosRepository ,
132+ kudosRecipientRepository ,
133+ memberProfileServices ,
134+ reviewPeriodServices ,
135+ feedbackTemplateServices ,
136+ feedbackRequestServices ,
137+ feedbackAnswerServices ,
138+ templateQuestionServices ,
139+ employeeHoursServices ,
140+ fileServices );
141+ markdown .upload (dto .getMemberIds (), dto .getReviewPeriodId ());
142+ return HttpStatus .OK ;
148143 }
149144}
0 commit comments