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.http.MediaType;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import static org.springframework.data.jpa.domain.AbstractPersistable_.id;
@RestController @RestController
@AllArgsConstructor @AllArgsConstructor
@RequestMapping("/api/v1/invite") @RequestMapping("/api/v1/invite")
@ -24,4 +26,18 @@ public class InviteController {
Invite invite = this.modelMapper.map(inviteRequest, Invite.class); Invite invite = this.modelMapper.map(inviteRequest, Invite.class);
return this.modelMapper.map(this.inviteService.create(invite), InviteSimpleDTO.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 InviteRepository inviteRepository;
private final JoueurRepository joueurRepository; private final JoueurRepository joueurRepository;
public Invite findById(int id){
return this.inviteRepository.findById(id).orElseThrow(() -> new InviteNotFoundException(id));
}
private void checkFieldsConstraints(Invite invite){ private void checkFieldsConstraints(Invite invite){
if(this.joueurRepository.existsByPseudo(invite.getPseudo())){ if(this.joueurRepository.existsByPseudo(invite.getPseudo())){
throw new DuplicatedFieldException("pseudo"); throw new DuplicatedFieldException("pseudo");

Loading…
Cancel
Save