package com.kryptnostic.registration.v1.models;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.base.Optional;
import com.kryptnostic.kodex.v1.constants.Names;
import com.kryptnostic.kodex.v1.models.UserAttributes;
public class UserCreationRequest {
private final String password;
private final String email;
private final String name;
private final Optional<UserAttributes> attributes;
private final boolean confirmationEmailNeeded;
@JsonCreator
public UserCreationRequest(
@JsonProperty( Names.EMAIL_FIELD ) String email,
@JsonProperty( Names.NAME_FIELD ) String name,
@JsonProperty( Names.PASSWORD_FIELD ) String password,
@JsonProperty( Names.ATTRIBUTES_FIELD ) Optional<UserAttributes> attributes,
@JsonProperty( Names.CONFIRMATION_FIELD ) Optional<Boolean> confirmationEmailNeeded ) {
this.password = password;
this.email = email;
this.name = name;
this.confirmationEmailNeeded = confirmationEmailNeeded.or( false );
this.attributes = attributes;
}
@JsonProperty( Names.PASSWORD_FIELD )
public String getPassword() {
return password;
}
@JsonProperty( Names.EMAIL_FIELD )
public String getEmail() {
return email;
}
@JsonProperty( Names.NAME_FIELD )
public String getDisplayName() {
return name;
}
@JsonProperty( Names.ATTRIBUTES_FIELD )
public Optional<UserAttributes> getAttributes() {
return attributes;
}
@JsonProperty( Names.CONFIRMATION_FIELD )
public boolean isConfirmationEmailNeeded() {
return confirmationEmailNeeded;
}
}