feat(DeleteUser): implementada funcionalidad para eliminar usuarios

parent c50c5123
package com.example.apprecetas.user.application;
public interface DeleteUserUseCase {
boolean deleteById(Long id);
}
package com.example.apprecetas.user.application.impl;
import com.example.apprecetas.exceptions.EntityNotFoundException;
import com.example.apprecetas.user.application.DeleteUserUseCase;
import com.example.apprecetas.user.domain.repository.DeleteUserRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@Service
@RequiredArgsConstructor
public class DeleteUserUseCaseImpl implements DeleteUserUseCase {
private final DeleteUserRepository repository;
@Override
public boolean deleteById(Long id) {
boolean isDeleted = repository.deleteById(id);
if (!isDeleted)
throw new EntityNotFoundException("Usuario con id " + id + " no encontrado");
return isDeleted;
}
}
package com.example.apprecetas.user.domain.repository;
public interface DeleteUserRepository {
boolean deleteById(Long id);
}
package com.example.apprecetas.user.infrastructure.controller;
import com.example.apprecetas.user.application.DeleteUserUseCase;
import com.example.apprecetas.user.domain.repository.DeleteUserRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/user")
@RequiredArgsConstructor
public class DeleteUserController {
private final DeleteUserUseCase service;
@DeleteMapping("/{id}")
public ResponseEntity<String> deleteById(@PathVariable Long id) {
boolean isDeleted = service.deleteById(id);
if(isDeleted)
return ResponseEntity.ok().body("Usuario con id " + id + " eliminado correctamente");
return ResponseEntity.notFound().build();
}
}
package com.example.apprecetas.user.infrastructure.repository.impl;
import com.example.apprecetas.user.domain.repository.DeleteUserRepository;
import com.example.apprecetas.user.infrastructure.repository.jpa.UserRepositoryJpa;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Repository;
@Repository
@RequiredArgsConstructor
public class DeleteUserRepositoryImpl implements DeleteUserRepository {
private final UserRepositoryJpa repositoryJpa;
@Override
public boolean deleteById(Long id) {
boolean isDeleted = false;
if(repositoryJpa.existsById(id)) {
repositoryJpa.deleteById(id);
isDeleted = true;
}
return isDeleted;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment