auth listo y contador terminados

This commit is contained in:
2025-09-10 17:36:04 -04:00
commit bdefcf5162
21 changed files with 1090 additions and 0 deletions

View File

@@ -0,0 +1,55 @@
package com.example.fercoganbackend.controller;
import com.example.fercoganbackend.component.ContadorWebSocketHandler;
import com.example.fercoganbackend.entity.Rol;
import com.example.fercoganbackend.entity.Usuario;
import com.example.fercoganbackend.service.ContadorService;
import com.example.fercoganbackend.service.UsuarioService;
import org.springframework.web.bind.annotation.*;
import java.util.Set;
import java.util.List;
@RestController
public class AppController {
private final UsuarioService usuarioService;
private final ContadorService contadorService;
private final ContadorWebSocketHandler webSocketHandler;
public AppController(UsuarioService usuarioService, ContadorService contadorService, ContadorWebSocketHandler webSocketHandler) {
this.usuarioService = usuarioService;
this.contadorService = contadorService;
this.webSocketHandler = webSocketHandler;
}
// Registro
@PostMapping("/auth/registrar")
public String registrar(@RequestParam String username,
@RequestParam String password,
@RequestParam Set<Rol> roles) {
usuarioService.registrarUsuario(username, password, roles);
return "Usuario registrado, pendiente de aprobación";
}
// Verificar si aprobado
@GetMapping("/auth/verificar/{username}")
public String verificar(@PathVariable String username) {
boolean aprobado = usuarioService.estaAprobado(username);
return aprobado ? "Usuario aprobado ✅" : "Usuario pendiente ❌";
}
// Listar pendientes (solo admin/super)
@GetMapping("/admin/pendientes")
public List<Usuario> pendientes() {
return usuarioService.listarPendientes();
}
// Aceptar usuario (solo admin/super)
@PostMapping("/admin/aceptar/{id}")
public String aceptar(@PathVariable Long id) {
usuarioService.aceptarUsuario(id);
return "Usuario aprobado ✅";
}
}

View File

@@ -0,0 +1,30 @@
package com.example.fercoganbackend.controller;
// ContadorController.java (REST API)
import com.example.fercoganbackend.component.ContadorWebSocketHandler;
import com.example.fercoganbackend.service.ContadorService;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/contador")
public class ContadorController {
private final ContadorService contadorService;
private final ContadorWebSocketHandler webSocketHandler;
public ContadorController(ContadorService contadorService, ContadorWebSocketHandler webSocketHandler) {
this.contadorService = contadorService;
this.webSocketHandler = webSocketHandler;
}
@PostMapping("/incrementar")
public int incrementar() {
int nuevoValor = contadorService.incrementar();
webSocketHandler.broadcast(String.valueOf(nuevoValor));
return nuevoValor;
}
@GetMapping
public int getContador() {
return contadorService.getContador();
}
}