package com.uservoice.uservoicesdk;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
public class Config {
private String site;
private String key;
private String secret;
private String email;
private String name;
private String guid;
private Map<String, String> customFields = new HashMap<String, String>();
private int topicId = -1;
private int forumId = -1;
private boolean showForum = true;
private boolean showPostIdea = true;
private boolean showContactUs = true;
private boolean showKnowledgeBase = true;
private Map<String, Object> userTraits = new HashMap<String, Object>();
public Config(String site) {
this.site = site;
}
public Config(String site, String key, String secret) {
this.site = site;
this.key = key;
this.secret = secret;
}
public String getSite() {
return site;
}
public String getKey() {
return key;
}
public String getSecret() {
return secret;
}
public String getEmail() {
return email;
}
public String getName() {
return name;
}
public String getGuid() {
return guid;
}
public Map<String, String> getCustomFields() {
return customFields;
}
public void setCustomFields(Map<String, String> customFields) {
this.customFields = customFields;
}
public int getTopicId() {
return topicId;
}
public void setTopicId(int topicId) {
this.topicId = topicId;
}
public int getForumId() {
if (forumId == -1 && Session.getInstance().getClientConfig() != null)
return Session.getInstance().getClientConfig().getDefaultForumId();
return forumId;
}
public void setForumId(int forumId) {
this.forumId = forumId;
}
public boolean shouldShowForum() {
if (Session.getInstance().getClientConfig() != null && !Session.getInstance().getClientConfig().isFeedbackEnabled())
return false;
return showForum;
}
public void setShowForum(boolean showForum) {
this.showForum = showForum;
}
public boolean shouldShowPostIdea() {
if (Session.getInstance().getClientConfig() != null && !Session.getInstance().getClientConfig().isFeedbackEnabled())
return false;
return showPostIdea;
}
public void setShowPostIdea(boolean showPostIdea) {
this.showPostIdea = showPostIdea;
}
public boolean shouldShowContactUs() {
if (Session.getInstance().getClientConfig() != null && !Session.getInstance().getClientConfig().isTicketSystemEnabled())
return false;
return showContactUs;
}
public void setShowContactUs(boolean showContactUs) {
this.showContactUs = showContactUs;
}
public boolean shouldShowKnowledgeBase() {
if (Session.getInstance().getClientConfig() != null && !Session.getInstance().getClientConfig().isTicketSystemEnabled())
return false;
return showKnowledgeBase;
}
public void setShowKnowledgeBase(boolean showKnowledgeBase) {
this.showKnowledgeBase = showKnowledgeBase;
}
public void identifyUser(String id, String name, String email) {
guid = id;
this.name = name;
this.email = email;
putUserTrait("id", id);
putUserTrait("name", name);
putUserTrait("email", email);
}
public void putUserTrait(String key, String value) {
userTraits.put(key, value);
}
public void putUserTrait(String key, int value) {
userTraits.put(key, value);
}
public void putUserTrait(String key, boolean value) {
userTraits.put(key, value);
}
public void putUserTrait(String key, float value) {
userTraits.put(key, value);
}
public void putUserTrait(String key, Date value) {
userTraits.put(key, value.getTime() / 1000);
}
public void putAccountTrait(String key, String value) {
putUserTrait("account_" + key, value);
}
public void putAccountTrait(String key, int value) {
putUserTrait("account_" + key, value);
}
public void putAccountTrait(String key, boolean value) {
putUserTrait("account_" + key, value);
}
public void putAccountTrait(String key, float value) {
putUserTrait("account_" + key, value);
}
public void putAccountTrait(String key, Date value) {
putUserTrait("account_" + key, value);
}
public Map<String, Object> getUserTraits() {
return userTraits;
}
}