63 lines
2 KiB
Java
63 lines
2 KiB
Java
package dev.peerat.backend.routes.users;
|
|
|
|
import java.util.regex.Matcher;
|
|
|
|
import dev.peerat.backend.bonus.extract.RouteDoc;
|
|
import dev.peerat.backend.model.PeerAtUser;
|
|
import dev.peerat.backend.model.Player;
|
|
import dev.peerat.backend.repository.DatabaseRepository;
|
|
import dev.peerat.backend.utils.FormResponse;
|
|
import dev.peerat.framework.Context;
|
|
import dev.peerat.framework.HttpReader;
|
|
import dev.peerat.framework.HttpWriter;
|
|
import dev.peerat.framework.RequestType;
|
|
import dev.peerat.framework.Route;
|
|
import dev.peerat.framework.utils.json.JsonMap;
|
|
|
|
public class ProfileSettings extends FormResponse{
|
|
|
|
private DatabaseRepository repo;
|
|
|
|
public ProfileSettings(DatabaseRepository repo){
|
|
this.repo = repo;
|
|
|
|
validator("pseudo", "[a-zA-Z0-9&|!?{}\\[\\]%/*\\-+=:;,_#@ ]{3,100}");
|
|
}
|
|
|
|
@RouteDoc(path = "/user/settings", responseCode = 200, responseDescription = "L'utilisateur a mis à jours sont profile")
|
|
@RouteDoc(responseCode = 400, responseDescription = "L'utilisateur a envoyer une donnée unique, déjà utilisée")
|
|
|
|
@Route(path = "^/user/settings$", type = RequestType.POST, needLogin = true)
|
|
public void exec(Matcher matcher, Context context, HttpReader reader, HttpWriter writer) throws Exception {
|
|
JsonMap json = json(reader);
|
|
|
|
String pseudo = json.get("pseudo");
|
|
String email = json.get("email");
|
|
String firstname = json.get("firstname");
|
|
String lastname = json.get("lastname");
|
|
Player player = repo.getPlayer(context.<PeerAtUser>getUser().getId());
|
|
|
|
if(!areValids("pseudo", "firstname", "lastname")){
|
|
context.response(400);
|
|
return;
|
|
}
|
|
|
|
if(!player.getPseudo().equals(pseudo)){
|
|
if(!repo.updatePseudo(context.<PeerAtUser>getUser().getId(), player, pseudo)){
|
|
context.response(400);
|
|
return;
|
|
}
|
|
player.setPseudo(pseudo);
|
|
}
|
|
|
|
if(!player.getEmail().equals(email)){
|
|
}
|
|
|
|
if((!player.getFirstname().equals(firstname)) || (!player.getLastname().equals(lastname))){
|
|
repo.updateProfile(context.<PeerAtUser>getUser().getId(), player, lastname, firstname);
|
|
}
|
|
|
|
context.response(200);
|
|
}
|
|
|
|
}
|