package org.pac4j.oauth.profile.vk;
import java.net.URI;
import java.util.Date;
import java.util.Locale;
import org.pac4j.core.profile.Gender;
import org.pac4j.core.util.CommonHelper;
import org.pac4j.oauth.profile.OAuth20Profile;
/**
* <p>This class is the user profile for Vk with appropriate getters.</p>
* <p>It is returned by the {@link org.pac4j.oauth.client.VkClient}.</p>
*
* @author indvdum (gotoindvdum[at]gmail[dot]com)
* @since 1.5
*/
public class VkProfile extends OAuth20Profile {
private static final long serialVersionUID = -7889265305949082980L;
@Override
public String getDisplayName() {
return String.format("%s %s", getFirstName(), getLastName()).trim();
}
@Override
public String getUsername() {
String domain = getDomain();
if (domain != null && !domain.isEmpty())
return domain;
return getId();
}
@Override
public URI getPictureUrl() {
return CommonHelper.asURI(getFotoMax());
}
@Override
public URI getProfileUrl() {
return CommonHelper.asURI(String.format("https://vk.com/id%s", getId()));
}
@Override
public String getEmail() {
return "";
}
@Override
public String getFamilyName() {
return getLastName();
}
@Override
public Gender getGender() {
final Gender gender = (Gender) getAttribute(VkProfileDefinition.SEX);
if (gender == null) {
return Gender.UNSPECIFIED;
} else {
return gender;
}
}
@Override
public Locale getLocale() {
return null;
}
@Override
public String getLocation() {
return null;
}
@Override
public String getFirstName() {
return (String) getAttribute(VkProfileDefinition.FIRST_NAME);
}
public String getLastName() {
return (String) getAttribute(VkProfileDefinition.LAST_NAME);
}
public Date getBirthDate() {
return (Date) getAttribute(VkProfileDefinition.BIRTH_DATE);
}
public String getFoto50() {
return (String) getAttribute(VkProfileDefinition.PHOTO_50);
}
public String getFoto100() {
return (String) getAttribute(VkProfileDefinition.PHOTO_100);
}
public String getFoto200Orig() {
return (String) getAttribute(VkProfileDefinition.PHOTO_200_ORIG);
}
public String getFoto200() {
return (String) getAttribute(VkProfileDefinition.PHOTO_200);
}
public String getFoto400Orig() {
return (String) getAttribute(VkProfileDefinition.PHOTO_400_ORIG);
}
public String getFotoMax() {
return (String) getAttribute(VkProfileDefinition.PHOTO_MAX);
}
public String getFotoMaxOrig() {
return (String) getAttribute(VkProfileDefinition.PHOTO_MAX_ORIG);
}
public Boolean isOnline() {
return (Boolean) getAttribute(VkProfileDefinition.ONLINE);
}
public Boolean isOnlineMobile() {
return (Boolean) getAttribute(VkProfileDefinition.ONLINE_MOBILE);
}
public String getDomain() {
return (String) getAttribute(VkProfileDefinition.DOMAIN);
}
public Boolean isHasMobile() {
return (Boolean) getAttribute(VkProfileDefinition.HAS_MOBILE);
}
public String getMobilePhone() {
return (String) getAttribute(VkProfileDefinition.MOBILE_PHONE);
}
public String getHomePhone() {
return (String) getAttribute(VkProfileDefinition.HOME_PHONE);
}
public String getSkype() {
return (String) getAttribute(VkProfileDefinition.SKYPE);
}
public String getSite() {
return (String) getAttribute(VkProfileDefinition.SITE);
}
public Boolean isCanPost() {
return (Boolean) getAttribute(VkProfileDefinition.CAN_POST);
}
public Boolean isCanSeeAllPost() {
return (Boolean) getAttribute(VkProfileDefinition.CAN_SEE_ALL_POST);
}
public Boolean isCanSeeAudio() {
return (Boolean) getAttribute(VkProfileDefinition.CAN_SEE_AUDIO);
}
public Boolean isCanWritePrivateMessage() {
return (Boolean) getAttribute(VkProfileDefinition.CAN_WRITE_PRIVATE_MESSAGE);
}
public String getStatus() {
return (String) getAttribute(VkProfileDefinition.STATUS);
}
public Integer getCommonCount() {
return (Integer) getAttribute(VkProfileDefinition.COMMON_COUNT);
}
public Integer getRelation() {
return (Integer) getAttribute(VkProfileDefinition.RELATION);
}
}