Service
Creamos el paquete
com.tutosoftware.aloja.service En este paquete vamos a crear las
clases de servicio excepto las clases de autentificación. Creamos la clase
AdministradorService
package com.tutosoftware.aloja.service;
import java.util.List;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import com.tutosoftware.aloja.dto.AdministradorDto;
import com.tutosoftware.aloja.model.Administrador;
import com.tutosoftware.aloja.model.AdministradorRequest;
import com.tutosoftware.aloja.model.Role;
import com.tutosoftware.aloja.repository.AdministradorRepository;
import jakarta.transaction.Transactional;
import lombok.RequiredArgsConstructor;
@Service
@RequiredArgsConstructor
public class AdministradorService {
private final PasswordEncoder passwordEncoder;
private final AdministradorRepository adminRepository;
@Transactional
public Administrador findById(Integer id) {
// TODO Auto-generated method stub
return adminRepository.findById(id).orElse(null);
}
public AdministradorDto getAdministrador(String email) {
Administrador admin = adminRepository.findByCorreo(email).orElseThrow(null);
if(admin!=null) {
AdministradorDto adminDto=AdministradorDto.builder()
.idAdmin(admin.getIdAdmin())
.nombre(admin.getNombre())
.apellidoPaterno(admin.getApellidoPaterno())
.apellidoMaterno(admin.getApellidoMaterno())
.celular(admin.getCelular())
.correo(admin.getCorreo())
.rol(admin.getRol().toString())
.build();
return adminDto;
}
return null;
}
public List<Administrador> getAdministradores(){
List<Administrador> administradores=adminRepository.findAll();
return administradores;
}
@Transactional
public void crearAdministrador(AdministradorRequest admin) {
Administrador adminSave = Administrador.builder()
.nombre(admin.getNombre())
.apellidoPaterno(admin.getApellidoPaterno())
.apellidoMaterno(admin.getApellidoMaterno())
.correo(admin.getCorreo())
.celular(admin.getCelular())
.password(passwordEncoder.encode(admin.getPassword()))
.rol(parse(admin.getRol()))
.build();
adminRepository.save(adminSave);
}
@Transactional
public void actualizarAdministrador(Administrador admin) {
adminRepository.save(admin);
}
@Transactional
public void delete(Integer id) {
// TODO Auto-generated method stub
adminRepository.deleteById(id);
}
public static Role parse(String text){
if(text.equals("ADMIN")){
return Role.ADMIN;
} else {
return Role.USER;
}
}
}