package org.fluxtream.core.mvc.models; import java.util.Map; import com.wordnik.swagger.annotations.ApiModel; import com.wordnik.swagger.annotations.ApiModelProperty; import org.codehaus.jackson.annotate.JsonRawValue; import org.fluxtream.core.domain.Guest; import org.fluxtream.core.domain.GuestSettings; @ApiModel(value = "User Preferences: units of measure, first name and last name and connector settings.") public class SettingsModel { String firstName, lastName, temperatureUnit, distanceUnit, weightMeasureUnit, lengthMeasureUnit; @ApiModelProperty(value = "Associative array of connector settings with apiKeyIds as keys and custom settings objects as values", required=true) public Map<Long,Object> connectorSettings; @ApiModelProperty(value = "Associative array of connector settings with message ids as keys and display count as values", required=true) public Map<String,Integer> messageDisplayCounters; @ApiModelProperty(value = "Method used for registering this user", required=true, allowableValues = "REGISTRATION_METHOD_FORM, REGISTRATION_METHOD_FACEBOOK, REGISTRATION_METHOD_FACEBOOK_WITH_PASSWORD") public String registrationMethod; @JsonRawValue @ApiModelProperty(value = "Misc UI Preferences", required=true) public String preferences; public SettingsModel(GuestSettings settings, Map<Long,Object> connectorSettings, Guest guest) { this.firstName = guest.firstname; this.lastName = guest.lastname; this.registrationMethod = guest.registrationMethod.name(); this.temperatureUnit = settings.temperatureUnit.name(); this.distanceUnit = settings.distanceMeasureUnit.name(); this.weightMeasureUnit = settings.weightMeasureUnit.name(); this.lengthMeasureUnit = settings.lengthMeasureUnit.name(); this.connectorSettings = connectorSettings; this.messageDisplayCounters = settings.getMessageDisplayCounters(); this.preferences = settings.preferences; } }