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;
        }
    }
		
}