package auth.mapper; import api.v1.CoordinateFormat; import api.v1.UserPreferences; import auth.models.User; import auth.types.RoleType; import models.UserPreferenceModel; import java.util.ArrayList; import java.util.List; public class UserMapper { public api.v1.User mapToApi(User mUser) { api.v1.User apiUser = new api.v1.User(); apiUser.id = mUser.id; apiUser.username = mUser.username; apiUser.name = mUser.name; apiUser.role = RoleType.get(mUser.role.getCode()); apiUser.isActive = mUser.isActive; apiUser.preferences = new UserPreferences(); if (mUser.preferences == null) { apiUser.preferences.showGrid = true; apiUser.preferences.coordinateFormat = CoordinateFormat.DEGREES_MINUTES_SECONDS; } else { switch (mUser.preferences.coordinateFormat) { case DECIMAL_DEGREES: apiUser.preferences.coordinateFormat = CoordinateFormat.DECIMAL_DEGREES; break; case DEGREES_MINUTES_SECONDS: apiUser.preferences.coordinateFormat = CoordinateFormat.DEGREES_MINUTES_SECONDS; break; case UTM: apiUser.preferences.coordinateFormat = CoordinateFormat.UTM; break; } apiUser.preferences.showGrid = mUser.preferences.showGrid; } return apiUser; } public User mapFromApi(api.v1.User aUser) { User mUser = new User(); mUser.username = aUser.username.toLowerCase(); mUser.name = aUser.name; mUser.id = aUser.id; mUser.role = aUser.role; mUser.isActive = aUser.isActive; mUser.preferences = new UserPreferenceModel(); mUser.preferences.showGrid = aUser.preferences.showGrid; switch (aUser.preferences.coordinateFormat) { case DECIMAL_DEGREES: mUser.preferences.coordinateFormat = models.CoordinateFormat.DECIMAL_DEGREES; break; case DEGREES_MINUTES_SECONDS: mUser.preferences.coordinateFormat = models.CoordinateFormat.DEGREES_MINUTES_SECONDS; break; case UTM: mUser.preferences.coordinateFormat = models.CoordinateFormat.UTM; break; } return mUser; } public List<api.v1.User> mapToApi(List<User> userModels) { List<api.v1.User> users = new ArrayList<>(); for (User u : userModels) { users.add(mapToApi(u)); } return users; } }