Practica 1

parent f49593b4
package com.ayto.incidencias.repo.memoria;
import com.ayto.incidencias.dominio.Incidencia;
import com.ayto.incidencias.repo.IncidenciaRepo;
import org.springframework.stereotype.Repository;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicLong;
import java.util.stream.Collectors;
@Repository
public class IncidenciaRepoMem implements IncidenciaRepo {
private final Map<Long,Incidencia> datos = new ConcurrentHashMap<>();
private final AtomicLong seq = new AtomicLong(0);
public Incidencia save(Incidencia i){
if(i.getId()==null) i.setId(seq.incrementAndGet());
datos.put(i.getId(), i);
return i;
}
public Optional<Incidencia> findById(Long id){ return Optional.ofNullable(datos.get(id)); }
public void delete(Long id){ datos.remove(id); }
public List<Incidencia> findByAutor(Long uid){
return datos.values().stream()
.filter(i -> i.getAutor()!=null && i.getAutor().getId().equals(uid))
.collect(Collectors.toList());
}
public List<Incidencia> findAll(){ return new ArrayList<>(datos.values()); }
}
\ No newline at end of file
package com.ayto.incidencias.repo.memoria;
import com.ayto.incidencias.dominio.TipoIncidencia;
import com.ayto.incidencias.repo.TipoIncidenciaRepo;
import org.springframework.stereotype.Repository;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicLong;
@Repository
public class TipoIncidenciaRepoMem implements TipoIncidenciaRepo {
private final Map<Long,TipoIncidencia> datos = new ConcurrentHashMap<>();
private final AtomicLong seq = new AtomicLong(0);
public TipoIncidencia save(TipoIncidencia t){
if(t.getId()==null) t.setId(seq.incrementAndGet());
datos.put(t.getId(), t);
return t;
}
public void delete(Long id){ datos.remove(id); }
public boolean existsByNombre(String n){
return datos.values().stream().anyMatch(t -> t.getNombre().equalsIgnoreCase(n));
}
public Optional<TipoIncidencia> findById(Long id){ return Optional.ofNullable(datos.get(id)); }
public List<TipoIncidencia> findAll(){ return new ArrayList<>(datos.values()); }
}
\ No newline at end of file
package com.ayto.incidencias.repo.memoria;
import com.ayto.incidencias.dominio.Usuario;
import com.ayto.incidencias.repo.UsuarioRepo;
import org.springframework.stereotype.Repository;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
@Repository
public class UsuarioRepoMem implements UsuarioRepo {
private final Map<String,Usuario> porLogin = new ConcurrentHashMap<>();
public Usuario save(Usuario u){ porLogin.put(u.getLogin(), u); return u; }
public Optional<Usuario> findByLogin(String login){ return Optional.ofNullable(porLogin.get(login)); }
}
\ No newline at end of file
......@@ -13,7 +13,6 @@ public class ServicioUsuarios {
@Value("${app.admin.login}") String adminLogin,
@Value("${app.admin.password}") String adminPass) {
this.usuarios = usuarios;
// Asegura admin fijo
usuarios.findByLogin(adminLogin).or(() -> {
Usuario a = new Usuario();
a.setLogin(adminLogin); a.setClaveHash(adminPass);
......
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