Commit 92a56013 by Álvaro Herrera Arjonilla

Merge remote-tracking branch 'origin/master'

parents 4f791ae4 7578d8cb
package com.example.demo;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import spark.ModelAndView;
import static spark.Spark.*;
public class Circuito
{
......
......@@ -22,6 +22,9 @@ public class SparkRest
final CircuitoService circuitoService = new CircuitoServiceMapImpl()
{};
final UsuarioService usuarioService = new UsuarioServiceMapImpl()
{};
before((request, response) -> {
response.header("Access-Control-Allow-Origin", "*");
response.header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
......@@ -87,6 +90,53 @@ public class SparkRest
return new Gson().toJson(new StandardResponse(StatusResponse.SUCCESS, (circuitoService.circuitoExist(request.params(":id"))) ? "Circuito exists" : "Circuito does not exists"));
});
//usuarios
post("/usuarios", (request, response) -> {
response.type("application/json");
Usuario usuario = new Gson().fromJson(request.body(), Usuario.class);
usuarioService.addUsuario(usuario);
return new Gson().toJson(new StandardResponse(StatusResponse.SUCCESS));
});
get("/usuarios", (request, response) -> {
response.type("application/json");
return new Gson().toJson(new StandardResponse(StatusResponse.SUCCESS, new Gson().toJsonTree(usuarioService.getUsuarios())));
});
get("/usuarios/:id", (request, response) -> {
response.type("application/json");
return new Gson().toJson(new StandardResponse(StatusResponse.SUCCESS, new Gson().toJsonTree(usuarioService.getUsuario(request.params(":id")))));
});
put("/usuarios/:id", (request, response) -> {
response.type("application/json");
Usuario toEdit = new Gson().fromJson(request.body(), Usuario.class);
Usuario editedUsuario = usuarioService.editUsuario(toEdit);
if (editedUsuario != null) {
return new Gson().toJson(new StandardResponse(StatusResponse.SUCCESS, new Gson().toJsonTree(editedUsuario)));
} else {
return new Gson().toJson(new StandardResponse(StatusResponse.ERROR, new Gson().toJson("Usuario not found or error in edit")));
}
});
delete("/usuarios/:id", (request, response) -> {
response.type("application/json");
usuarioService.deleteUsuario(request.params(":id"));
return new Gson().toJson(new StandardResponse(StatusResponse.SUCCESS, "user deleted"));
});
options("/usuarios/:id", (request, response) -> {
response.type("application/json");
return new Gson().toJson(new StandardResponse(StatusResponse.SUCCESS, (usuarioService.usuarioExist(request.params(":id"))) ? "Usuario exists" : "Usuario does not exists"));
});
}
}
package com.example.demo;
public class Usuario {
private String id;
private String nombre;
private String apellidos;
private String email;
private String contrasena1;
private String contrasena2;
public Usuario(String id, String nombre, String apellidos, String email, String contrasena1, String contrasena2)
{
this.id=id;
this.nombre = nombre;
this.apellidos = apellidos;
this.email = email;
this.contrasena1 = contrasena1;
this.contrasena2 = contrasena2;
}
public Usuario()
{
this.id = "";
this.nombre = "";
this.apellidos = "";
this.email = "";
this.contrasena1 = "";
this.contrasena2 = "";
}
public Usuario(Usuario user)
{
this.id=user.id;
this.nombre = user.nombre;
this.apellidos = user.apellidos;
this.email = user.email;
this.contrasena1 = user.contrasena1;
this.contrasena2 = user.contrasena2;
}
public String getNombre()
{
return nombre;
}
public String getApellidos()
{
return apellidos;
}
public String getEmail()
{
return email;
}
public String getContrasena1()
{
return contrasena1;
}
public String getContrasena2()
{
return contrasena2;
}
public void setNombre(String nombre)
{
this.nombre = nombre;
}
public void setApellidos(String apellidos)
{
this.apellidos = apellidos;
}
public void setEmail(String email)
{
this.email = email;
}
public void setContrasena1(String contrasena1)
{
this.contrasena1 = contrasena1;
}
public void setContrasena2(String contrasena2)
{
this.contrasena2 = contrasena2;
}
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
@Override
public String toString()
{
return getNombre();
}
}
package com.example.demo;
public class UsuarioException extends Exception
{
public UsuarioException()
{
super();
}
public UsuarioException(String message)
{
super(message);
}
}
package com.example.demo;
import java.util.Collection;
public interface UsuarioService
{
public void addUsuario(Usuario usuario);
public Collection<Usuario> getUsuarios();
public Usuario getUsuario(String id);
public Usuario editUsuario(Usuario usuario) throws UsuarioException;
public void deleteUsuario(String id);
public boolean usuarioExist(String id);
}
package com.example.demo;
import java.util.Collection;
import java.util.HashMap;
public class UsuarioServiceMapImpl implements UsuarioService {
private HashMap<String, Usuario> usuarioMap;
public UsuarioServiceMapImpl()
{
usuarioMap = new HashMap<>();
}
@Override
public void addUsuario(Usuario usuario) {
usuarioMap.put(usuario.getId(), usuario);
}
@Override
public Collection<Usuario> getUsuarios()
{
return usuarioMap.values();
}
@Override
public Usuario getUsuario(String id)
{
return usuarioMap.get(id);
}
@Override
public Usuario editUsuario(Usuario forEdit) throws UsuarioException {
try {
String id = forEdit.getId();
Usuario toEdit = usuarioMap.get(id);
if (toEdit == null)
{
throw new UsuarioException("Usuario not found");
}
if (forEdit.getNombre() != null && !forEdit.getNombre().isEmpty())
{
toEdit.setNombre(forEdit.getNombre());
}
if (forEdit.getApellidos() != null && !forEdit.getApellidos().isEmpty())
{
toEdit.setApellidos(forEdit.getApellidos());
}
if (forEdit.getEmail() != null && !forEdit.getEmail().isEmpty())
{
toEdit.setEmail(forEdit.getEmail());
}
if (forEdit.getContrasena1() != null && !forEdit.getContrasena1().isEmpty())
{
toEdit.setContrasena1(forEdit.getContrasena1());
}
if (forEdit.getContrasena2() != null && !forEdit.getContrasena2().isEmpty())
{
toEdit.setContrasena2(forEdit.getContrasena2());
}
return toEdit;
}
catch (Exception ex)
{
throw new UsuarioException(ex.getMessage());
}
}
@Override
public void deleteUsuario(String id)
{
usuarioMap.remove(id);
}
@Override
public boolean usuarioExist(String id)
{
return usuarioMap.containsKey(id);
}
}
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