Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
package com.scaler.todolist.controllers;

import com.scaler.todolist.models.Task;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.net.http.HttpResponse;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

@RequestMapping("/tasks")
Expand All @@ -21,7 +23,7 @@ ResponseEntity<List<Task>> getAllTasks() {

@PostMapping("/")
ResponseEntity<Task> addNewTask(@RequestBody Task task) {
Task taskToAdd = new Task(task.getName());
Task taskToAdd = new Task(task.getId(), task.getName());
taskList.add(taskToAdd);
return ResponseEntity.status(201).body(taskToAdd);
}
Expand All @@ -38,6 +40,44 @@ ResponseEntity<Task> addNewTask(@RequestBody Task task) {
* delete task no 5 (response with correct HTTP code)
* if task 5 does not exist, send 404
*/
@GetMapping("/tasks/{id}")
ResponseEntity<Task> getTask(int id) {
for (var task: taskList) {
if(task.getId()==id) {
return ResponseEntity.status(200).body(task);
}
}
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}

@PatchMapping("/tasks/{id}")
ResponseEntity<Task> updateTask(int id, @RequestBody Task body) {
for (var task: taskList) {
if(task.getId() == id) {
// update task and send response
task.setName(body.getName());
task.setDone(body.getDone());
task.setDue(body.getDue());
return ResponseEntity.status(200).body(task);
}
}
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}

@DeleteMapping ("/tasks/{id}")
ResponseEntity<HttpStatus> deleteTask(int id) {
// Creating iterator object
Iterator itr = taskList.iterator();

// Holds true till there is single element
// remaining in the object
while (itr.hasNext()) {
Task x = (Task)itr.next();
if (x.getId() == id) {
itr.remove();
return new ResponseEntity<>(HttpStatus.OK);
}
}
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
}
6 changes: 4 additions & 2 deletions todolist/src/main/java/com/scaler/todolist/models/Task.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,14 @@
import java.time.temporal.TemporalUnit;
import java.util.Calendar;
import java.util.Date;
import java.util.UUID;

@AllArgsConstructor
@NoArgsConstructor
@Getter(AccessLevel.PUBLIC)
@Setter(AccessLevel.PUBLIC)
public class Task {
private int id;
private String name;
private LocalDate due;
private Boolean done;
Expand All @@ -22,7 +24,7 @@ public class Task {
* due date 5 days from now, and done = false
* @param name
*/
public Task(String name) {
this(name, LocalDate.now().plus(5, ChronoUnit.DAYS), false);
public Task(int id, String name) {
this(id, name, LocalDate.now().plus(5, ChronoUnit.DAYS), false);
}
}