package com.feth.play.module.pa.providers.oauth2.untappd; import com.fasterxml.jackson.databind.JsonNode; import com.feth.play.module.pa.providers.oauth2.BasicOAuth2AuthUser; import com.feth.play.module.pa.user.BasicIdentity; import com.feth.play.module.pa.user.FirstLastNameIdentity; import com.feth.play.module.pa.user.PicturedIdentity; /** * https://untappd.com/api/docs#user_info */ public class UntappdAuthUser extends BasicOAuth2AuthUser implements BasicIdentity, FirstLastNameIdentity, PicturedIdentity { private static final long serialVersionUID = 1L; private static class Constants { public static final String EMAIL = "email_address"; public static final String DISPLAY_NAME = "user_name"; public static final String FIRST_NAME = "first_name"; public static final String ID = "id"; public static final String LAST_NAME = "last_name"; public static final String AVATAR_URL = "user_avatar"; public static final String SETTINGS = "settings"; } private String displayName; private String email; private String firstName; private String avatar; private String lastName; public UntappdAuthUser(final JsonNode n, final UntappdAuthInfo info, final String state) { super(n.get(Constants.ID).asText(), info, state); if (n.has(Constants.FIRST_NAME)) { this.firstName = n.get(Constants.FIRST_NAME).asText(); } if (n.has(Constants.LAST_NAME)) { this.lastName = n.get(Constants.LAST_NAME).asText(); } if (n.has(Constants.DISPLAY_NAME)) { this.displayName = n.get(Constants.DISPLAY_NAME).asText(); } if (n.has(Constants.SETTINGS)) { JsonNode settingsNode = n.get(Constants.SETTINGS); if (settingsNode.has(Constants.EMAIL)) { this.email = settingsNode.get(Constants.EMAIL).asText(); } } if (n.has(Constants.AVATAR_URL)) { this.avatar = n.get(Constants.AVATAR_URL).asText(); } } @Override public String getEmail() { return email; } @Override public String getFirstName() { return firstName; } @Override public String getLastName() { return lastName; } @Override public String getName() { return displayName; } @Override public String getPicture() { return avatar; } @Override public String getProvider() { return UntappdAuthProvider.PROVIDER_KEY; } }