ajout get + patch pour invite

Springboot
Victor SOULIER 1 year ago
parent 9705bd358f
commit fd6674205f

@ -11,6 +11,8 @@ import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import static org.springframework.data.jpa.domain.AbstractPersistable_.id;
@RestController
@AllArgsConstructor
@RequestMapping("/api/v1/invite")
@ -24,4 +26,18 @@ public class InviteController {
Invite invite = this.modelMapper.map(inviteRequest, Invite.class);
return this.modelMapper.map(this.inviteService.create(invite), InviteSimpleDTO.class);
}
@GetMapping(value = "/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseStatus(HttpStatus.OK)
public InviteSimpleDTO getInvite(@PathVariable int id){
return this.modelMapper.map(this.inviteService.findById(id), InviteSimpleDTO.class);
}
@PatchMapping(value = "/{id}", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseStatus(HttpStatus.OK)
public InviteSimpleDTO updateInvite(@PathVariable int id, @RequestBody @Valid InviteWithPseudoOnlyDTO updatedInvite){
Invite invite = this.inviteService.findById(id);
invite.setPseudo(updatedInvite.getPseudo());
return this.modelMapper.map(this.inviteService.update(invite), InviteSimpleDTO.class);
}
}

@ -20,6 +20,10 @@ public class InviteService {
private final InviteRepository inviteRepository;
private final JoueurRepository joueurRepository;
public Invite findById(int id){
return this.inviteRepository.findById(id).orElseThrow(() -> new InviteNotFoundException(id));
}
private void checkFieldsConstraints(Invite invite){
if(this.joueurRepository.existsByPseudo(invite.getPseudo())){
throw new DuplicatedFieldException("pseudo");

Loading…
Cancel
Save