AdminSettingsService.java
package sk.iway.iwcm.admin.settings;
import java.util.HashMap;
import java.util.Map;
import sk.iway.iwcm.JsonTools;
import sk.iway.iwcm.Tools;
import sk.iway.iwcm.users.SettingsAdminBean;
import sk.iway.iwcm.users.SettingsAdminDB;
import sk.iway.iwcm.users.UserDetails;
/**
* Podporna trieda pre ziskanie udajov ulozenych v admin_settings tabulke ako (JSON) hodnoty
*/
public class AdminSettingsService {
private UserDetails user;
private Map<String, SettingsAdminBean> settings;
public AdminSettingsService() {
settings = new HashMap<>();
user = null;
}
public AdminSettingsService(UserDetails user) {
setUser(user);
}
public void setUser(UserDetails user) {
this.user = user;
settings = user.getAdminSettings();
}
/**
* Vrati String hodnotu nastaveni pouzivatela so zadanym klucom
* @param key
* @return
*/
public String getValue(String key) {
SettingsAdminBean s = settings.get(key);
if (s == null) return null;
return s.getValue();
}
/**
* Vrati hodnotu z JSON objektu v zadanom kluci a zadanej JSON ceste (napr. kluc.druhy.treti)
* @param key
* @param jsonPath
* @return
*/
public String getJsonValue(String key, String jsonPath) {
String json = getValue(key);
if (json == null) return null;
return JsonTools.getValue(json, jsonPath);
}
/**
* Vrati boolean hodnotu z JSON objektu v zadanom kluci a zadanej JSON ceste (napr. kluc.druhy.treti)
* @param key
* @param jsonPath
* @return
*/
public boolean getJsonBooleanValue(String key, String jsonPath) {
String value = getJsonValue(key, jsonPath);
return "true".equals(value);
}
/**
* Vrati cislo (alebo -1 ak sa nejedna o cislo) z JSON objektu v zadanom kluci
* a zadanej JSON ceste (napr. kluc.druhy.treti)
* @param key
* @param jsonPath
* @return
*/
public int getJsonIntValue(String key, String jsonPath) {
String value = getJsonValue(key, jsonPath);
return Tools.getIntValue(value, -1);
}
/**
* Ulozi nastavenia pouzivatela so zadanym klucom a hodnotou
* @param key
* @param value
* @return
*/
public boolean saveSettings(String key, String value) {
SettingsAdminBean bean = new SettingsAdminBean(user.getUserId(), key, value);
boolean saveok = SettingsAdminDB.setSetting(bean);
//aby sa pri requeste reloadli z DB
user.setAdminSettings(null);
return saveok;
}
}