package auth.mapper; import api.v1.*; import org.joda.time.DateTime; import org.joda.time.DateTimeZone; import org.joda.time.Seconds; import service.PoseidonService; public class AuthMapper { public ValidateTokenResponse map2ValidateTokenResponse(auth.models.Token token) { ValidateTokenResponse validateTokenResponse = new ValidateTokenResponse(); if (token.user != null) { validateTokenResponse.user = map2User(token.user, false); } DateTimeZone tz = PoseidonService.getTimeZone(); validateTokenResponse.expires_in = (long) Seconds.secondsBetween(DateTime.now(tz), new DateTime(token.accessExpires, tz)).getSeconds(); validateTokenResponse.grant_type = token.grantType; return validateTokenResponse; } public Token map2Token(auth.models.Token tokenModel) { Token token = new Token(); token.access_token = tokenModel.accessToken; token.expires_in = tokenModel.getExpiresInSeconds(); token.refresh_token = tokenModel.refreshToken; token.token_type = tokenModel.tokenType; return token; } public User map2User(auth.models.User mUser, boolean full) { User aUser = new User(); aUser.id = mUser.id; aUser.name = mUser.name; aUser.username = mUser.username; aUser.role = mUser.role; aUser.preferences = new UserPreferences(); aUser.preferences.showGrid = mUser.preferences.showGrid; switch (mUser.preferences.coordinateFormat){ case DECIMAL_DEGREES: aUser.preferences.coordinateFormat = CoordinateFormat.DECIMAL_DEGREES; break; case DEGREES_MINUTES_SECONDS: aUser.preferences.coordinateFormat = CoordinateFormat.DEGREES_MINUTES_SECONDS; break; case UTM: aUser.preferences.coordinateFormat = CoordinateFormat.UTM; break; } return aUser; } }