package com.feth.play.module.pa.providers.oauth2.github;
import com.fasterxml.jackson.databind.JsonNode;
import com.feth.play.module.pa.providers.oauth2.BasicOAuth2AuthUser;
import com.feth.play.module.pa.user.*;
public class GithubAuthUser extends BasicOAuth2AuthUser implements
BasicIdentity, PicturedIdentity, ProfiledIdentity {
/**
*
*/
private static final long serialVersionUID = 1L;
@SuppressWarnings("unused")
private static class Constants {
public static final String LOCATION = "location"; // "Hamburg, Germany",
public static final String HIREABLE = "hireable"; // false,
public static final String PUBLIC_GISTS = "public_gists"; // 123,
public static final String FOLLOWING_URL = "following_url"; // "https://api.github.com/users/joscha/following{/other_user}",
public static final String URL = "url"; // "https://api.github.com/users/joscha",
public static final String COMPANY = "company"; // "ACME",
public static final String RECEIVED_EVENTS_URL = "received_events_url"; // "https://api.github.com/users/joscha/received_events",
public static final String EVENTS_URL = "events_url"; // "https://api.github.com/users/joscha/events{/privacy}",
public static final String UPDATED_AT = "updated_at"; // "2013-11-11T18:54:35Z",
public static final String BIO = "bio"; // null,
public static final String TYPE = "type"; // "User",
public static final String ORGANIZATIONS_URL = "organizations_url"; // "https://api.github.com/users/joscha/orgs",
public static final String SUBSCRIPTIONS_URL = "subscriptions_url"; // "https://api.github.com/users/joscha/subscriptions",
public static final String REPOS_URL = "repos_url"; // "https://api.github.com/users/joscha/repos",
public static final String STARRED_URL = "starred_url"; // "https://api.github.com/users/joscha/starred{/owner}{/repo}",
public static final String GISTS_URL = "gists_url"; // "https://api.github.com/users/joscha/gists{/gist_id}",
public static final String SITE_ADMIN = "site_admin"; // false,
public static final String LOGIN = "login"; // "joscha",
public static final String BLOG = "blog"; // "http://www.feth.com",
public static final String PUBLIC_REPOS = "public_repos"; // 123,
public static final String FOLLOWERS = "followers"; // 123,
public static final String FOLLOWING = "following"; // 123,
public static final String CREATED_AT = "created_at"; // "2010-01-23T00:19:18Z",
public static final String GRAVATAR_ID = "gravatar_id"; // "3911f3dda74ddc708ea8f10566c0d8c3",
public static final String FOLLOWERS_URL = "followers_url"; // "https://api.github.com/users/joscha/followers",
public static final String ID = "id";
public static final String EMAIL = "email";
public static final String NAME = "name";
public static final String HTML_URL = "html_url";
public static final String AVATAR_URL = "avatar_url";
}
private String email;
private String name;
private String link;
private String picture;
private String bio;
private String blog;
private String company;
private String login;
private String gravatarId;
private String location;
public GithubAuthUser(final JsonNode n, final GithubAuthInfo info,
final String state) {
super(n.get(Constants.ID).asText(), info, state);
if (n.has(Constants.EMAIL)) {
this.email = n.get(Constants.EMAIL).asText();
}
if (n.has(Constants.NAME)) {
this.name = n.get(Constants.NAME).asText();
}
if (n.has(Constants.HTML_URL)) {
this.link = n.get(Constants.HTML_URL).asText();
}
if (n.has(Constants.AVATAR_URL)) {
this.picture = n.get(Constants.AVATAR_URL).asText();
}
if (n.has(Constants.BIO)) {
this.bio = n.get(Constants.BIO).asText();
}
if (n.has(Constants.BLOG)) {
this.blog = n.get(Constants.BLOG).asText();
}
if (n.has(Constants.COMPANY)) {
this.company = n.get(Constants.COMPANY).asText();
}
if (n.has(Constants.LOGIN)) {
this.login = n.get(Constants.LOGIN).asText();
}
if (n.has(Constants.GRAVATAR_ID)) {
this.gravatarId = n.get(Constants.GRAVATAR_ID).asText();
}
if (n.has(Constants.LOCATION)) {
this.location = n.get(Constants.LOCATION).asText();
}
}
@Override
public String getProvider() {
return GithubAuthProvider.PROVIDER_KEY;
}
public String getEmail() {
return email;
}
public String getName() {
return name;
}
public String getProfileLink() {
return link;
}
public String getPicture() {
return picture;
}
public String getCompany() {
return company;
}
public String getBlog() {
return blog;
}
public String getBio() {
return bio;
}
public String getLogin() {
return login;
}
public String getGravatarId() {
return gravatarId;
}
public String getLocation() {
return location;
}
}