package com.takefive.plugins.jira.wechat.configuration;
import java.util.Map;
import java.util.UUID;
import com.atlassian.sal.api.pluginsettings.PluginSettingsFactory;
import com.google.gson.Gson;
import com.takefive.plugins.jira.wechat.configuration.template.UserInfo;
public class UserInfoAccess extends ConfigurationAccess {
public UserInfoAccess(PluginSettingsFactory pluginSettingsFactory) {
super(pluginSettingsFactory);
}
public boolean hasUserInfo(String username) {
return getMap(ConfigurationConstants.USERINFO).get(username) != null;
}
public UserInfo getUserInfo(String username) {
if (hasUserInfo(username)) {
return null;
}
else {
return new Gson().fromJson(getMap(ConfigurationConstants.USERINFO).get(username),UserInfo.class);
}
}
public UserInfo getOrCreateUserInfo(String username) {
UserInfo retval;
if (!hasUserInfo(username)) {
retval = new UserInfo(username);
retval.setUserId(UUID.randomUUID().toString());
}
else {
return new Gson().fromJson(getMap(ConfigurationConstants.USERINFO).get(username), UserInfo.class);
}
return retval;
}
public void setUserInfo(String username, UserInfo userInfo) {
Map<String, String> userInfoMap = getMap(ConfigurationConstants.USERINFO);
if (userInfo == null) {
userInfoMap.remove(username);
}
else {
userInfoMap.put(username, userInfo.toJson());
}
setMap(ConfigurationConstants.USERINFO, userInfoMap);
}
}