package cactusServer.models;
import javax.inject.Singleton;
import cactusServer.entities.*;
import java.util.HashMap;
import java.util.HashSet;
@Singleton
public class Accounts {
private static Accounts theInstance = null;
private HashMap<String, Account> accounts = new HashMap<>();
private HashSet<String> idSet = new HashSet<String>();
private Session session;
private Accounts() {
}
public static Accounts getInstance() {
if (theInstance == null) {
theInstance = new Accounts();
}
return theInstance;
}
public Session createAcount(String userID, String userName, String userPass) {
System.out.println(userName);
if (!idSet.add(userID)) {
return null;
}
Account newAccount = new Account(userName, userPass);
accounts.put(userID, newAccount);
newAccount.formToken();
System.out.println(userID);
return session;
}
public Account updateAccount(String userID, String userName, String userPass) {
if (idSet.contains(userID)) {
Accounts.getInstance().getAccount(userID).setName(userName);
Accounts.getInstance().getAccount(userID).setPass(userPass);
return Accounts.getInstance().getAccount(userID);
} else {
return null;
}
}
public Account getAccount(String userID) {
if (idSet.contains(userID)) {
Account editAccount = accounts.get(userID);
return editAccount;
} else {
return null;
}
}
public Session loginAccount(String userID, String userPass) {
if (idSet.contains(userID) && getAccount(userID).getPass().equals(userPass)) {
Accounts.getInstance().getAccount(userID).setLogin(true);
return session;
} else {
return null;
}
}
public String logoutAccount(String token) {
return "";
}
public String deleteAccount(String userID) {
if (idSet.contains(userID)) {
accounts.remove(userID);
idSet.remove(userID);
return "complated remove account";
} else {
return "not exist";
}
}
}