11package br .com .tasknoteapp .server .service ;
22
3+ import br .com .tasknoteapp .server .response .NoteResponse ;
34import br .com .tasknoteapp .server .response .TaskResponse ;
45import java .util .HashSet ;
56import java .util .List ;
@@ -16,10 +17,11 @@ public class HomeService {
1617
1718 private final TaskService taskService ;
1819
19- private static final String N_TASKS_FOUND = "%d tasks found!" ;
20+ private final NoteService noteService ;
2021
21- public HomeService (TaskService taskService ) {
22+ public HomeService (TaskService taskService , NoteService noteService ) {
2223 this .taskService = taskService ;
24+ this .noteService = noteService ;
2325 }
2426
2527 /**
@@ -28,20 +30,24 @@ public HomeService(TaskService taskService) {
2830 * @return List of String with the tags.
2931 */
3032 public List <String > getTopTasksTag () {
31- logger .info ("Getting all tags for the tasks" );
33+ logger .info ("Getting all tags for tasks and notes " );
3234
3335 List <TaskResponse > tasks = taskService .getTasksByFilter ("all" );
34- logger . info ( String . format ( N_TASKS_FOUND , tasks . size ()) );
36+ List < NoteResponse > notes = noteService . getAllNotes ( );
3537
3638 Set <String > tags = new HashSet <>();
37- for (TaskResponse task : tasks ) {
38- String tag = task .tag ();
39- if (tag .isBlank ()) {
40- tag = "untagged" ;
41- }
42- tags .add (tag );
39+ tags .addAll (tasks .stream ().map (TaskResponse ::tag ).filter (tag -> !tag .isBlank ()).toList ());
40+ tags .addAll (notes .stream ().map (NoteResponse ::tag ).filter (tag -> !tag .isBlank ()).toList ());
41+
42+ boolean hasBlankTags =
43+ tasks .stream ().anyMatch (task -> task .tag ().isBlank ())
44+ || notes .stream ().anyMatch (note -> note .tag ().isBlank ());
45+ if (hasBlankTags ) {
46+ tags .add ("untagged" );
4347 }
4448
49+ logger .info ("Found {} tags" , tags .size ());
50+
4551 return tags .stream ().sorted ().toList ();
4652 }
4753}
0 commit comments