私はコントローラコントローラまたはサービスの検証?
@GetMapping(value = "/sent/{id}")
public
HttpEntity<MessageSent> getMessageSent(
@ApiParam(value = "The message ID", required = true) @PathVariable Long id
) {
return ResponseEntity.ok().body(messageSearchService.getMessageSent(id, authorizationService.getUserId()));
}
にメッセージをダウンロードする方法を持っているしかし、私は、指定されたIDについてのメッセージがユーザに属しているかどうかを確認するのを忘れました。それはサービスでもこれをしません。
@Override
public MessageSent getMessageSent(
@Min(1) Long messageId,
@Min(1) Long userId
) throws ResourceNotFoundException {
Optional<UserEntity> user = this.userRepository.findByIdAndEnabledTrue(userId);
user.orElseThrow(() -> new ResourceNotFoundException("No user found with id " + userId));
return this.messageRepository.findByIdAndSenderAndIsVisibleForSenderTrue(messageId, user.get())
.map(MessageEntity::getSentDTO)
.orElseThrow(() -> new ResourceNotFoundException("No message found with id " + messageId));
}
私の質問はコントローラかサービスで行うべきかどうかです。私はサービスでこれを行うことを好むでしょうが、それが適切かどうかわかりません。