77 lines
2.5 KiB
Java
77 lines
2.5 KiB
Java
package de.lusiardi.testprojekt.controller;
|
|
|
|
import de.lusiardi.testprojekt.dto.PersonCreateDto;
|
|
import de.lusiardi.testprojekt.dto.PersonDto;
|
|
import de.lusiardi.testprojekt.exceptions.ResourceNotFoundException;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
import org.springframework.http.HttpStatus;
|
|
import org.springframework.stereotype.Controller;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
@Controller
|
|
public class RestController {
|
|
|
|
private List<PersonDto> persons = new ArrayList<PersonDto>();
|
|
|
|
@RequestMapping(value = "persons", method = RequestMethod.GET)
|
|
@ResponseBody
|
|
public List<PersonDto> getPersons() {
|
|
return persons;
|
|
}
|
|
|
|
@RequestMapping(value = "persons", method = RequestMethod.POST)
|
|
@ResponseBody
|
|
@ResponseStatus(HttpStatus.CREATED)
|
|
public PersonDto createPerson(@RequestBody PersonCreateDto in) {
|
|
PersonDto person = new PersonDto(in.getName(), in.getEmail());
|
|
persons.add(person);
|
|
return person;
|
|
}
|
|
|
|
@RequestMapping(value = "persons/{id}", method = RequestMethod.GET)
|
|
@ResponseBody
|
|
public PersonDto getPerson(@PathVariable(value = "id") int id) {
|
|
for (PersonDto person : persons) {
|
|
if (id == person.getId()) {
|
|
return person;
|
|
}
|
|
}
|
|
throw new ResourceNotFoundException();
|
|
}
|
|
|
|
@RequestMapping(value = "persons/{id}", method = RequestMethod.DELETE)
|
|
@ResponseBody
|
|
@ResponseStatus(HttpStatus.GONE)
|
|
public boolean deletePerson(@PathVariable(value = "id") int id) {
|
|
PersonDto toDelete = null;
|
|
for (PersonDto person : persons) {
|
|
if (id == person.getId()) {
|
|
toDelete = person;
|
|
}
|
|
}
|
|
if (toDelete != null) {
|
|
return persons.remove(toDelete);
|
|
} else {
|
|
throw new ResourceNotFoundException();
|
|
}
|
|
}
|
|
|
|
@RequestMapping(value = "persons/{id}", method = RequestMethod.PUT)
|
|
@ResponseBody
|
|
public PersonDto updatePerson(@PathVariable(value = "id") int id, @RequestBody PersonCreateDto in) {
|
|
PersonDto toUpdate = null;
|
|
for (PersonDto person : persons) {
|
|
if (id == person.getId()) {
|
|
toUpdate = person;
|
|
}
|
|
}
|
|
if (toUpdate != null) {
|
|
toUpdate.setEmail(in.getEmail());
|
|
toUpdate.setName(in.getName());
|
|
return toUpdate;
|
|
} else {
|
|
throw new ResourceNotFoundException();
|
|
}
|
|
}
|
|
} |