// Path: impala/src/main/java/hainguyen/impala/model/User.java
// public class User {
// 
//     @SerializedName("FullName")
//     public String fullName;
// 
//     @SerializedName("DateOfBirth")
//     public String dateOfBirth;
// 
//     @SerializedName("Gender")
//     public String gender;
// 
//     @SerializedName("Address")
//     public String address;
// 
//     @SerializedName("Phone")
//     public String phone;
// 
//     public String getFullName() {
//         return fullName;
//     }
// 
//     public void setFullName(String fullName) {
//         this.fullName = fullName;
//     }
// 
//     public String getDateOfBirth() {
//         return dateOfBirth;
//     }
// 
//     public void setDateOfBirth(String dateOfBirth) {
//         this.dateOfBirth = dateOfBirth;
//     }
// 
//     public String getGender() {
//         return gender;
//     }
// 
//     public void setGender(String gender) {
//         this.gender = gender;
//     }
// 
//     public String getAddress() {
//         return address;
//     }
// 
//     public void setAddress(String address) {
//         this.address = address;
//     }
// 
//     public String getPhone() {
//         return phone;
//     }
// 
//     public void setPhone(String phone) {
//         this.phone = phone;
//     }
// 
//     public User transformFrom(LoginResponse response) {
//         this.fullName = response.fullName();
//         this.address = response.address();
//         this.dateOfBirth = response.dateOfBirth();
//         this.gender = response.gender();
//         this.phone = response.phone();
//         return null;
//     }
// }
// 
// Path: impala/src/main/java/hainguyen/impala/network/LoginRepository.java
// public interface LoginRepository {
//     Observable<LoginResponse> login(LoginRequest request);
// }
// 
// Path: impala/src/main/java/hainguyen/impala/network/model/LoginRequest.java
// @AutoValue
// public abstract class LoginRequest {
//     @SerializedName("Email")
//     public abstract String email();
// 
//     @SerializedName("Password")
//     public abstract  String password();
// 
//     public static Builder builder() {
//         return new AutoValue_LoginRequest.Builder();
//     }
// 
//     @AutoValue.Builder
//     public abstract static class Builder {
//         public abstract Builder setEmail(String value);
//         public abstract Builder setPassword(String value);
//         public abstract LoginRequest build();
//     }
// 
//     public static TypeAdapter<LoginRequest> typeAdapter(Gson gson) {
//         return new AutoValue_LoginRequest.GsonTypeAdapter(gson);
//     }
// }
// 
// Path: impala/src/main/java/hainguyen/impala/network/model/LoginResponse.java
// @AutoValue public abstract class LoginResponse {
// 
//     @SerializedName("UserId") public abstract Integer userID();
// 
//     @SerializedName("FullName") public abstract String fullName();
// 
//     @SerializedName("DateOfBirth") public abstract String dateOfBirth();
// 
//     @SerializedName("Gender") public abstract String gender();
// 
//     @SerializedName("Address") public abstract String address();
// 
//     @SerializedName("Phone") public abstract String phone();
// 
//     public static LoginResponse.Builder builder() {
//         return new AutoValue_LoginResponse.Builder();
//     }
// 
//     @AutoValue.Builder
//     public abstract static class Builder {
//         public abstract Builder userID(Integer value);
//         public abstract Builder fullName(String value);
//         public abstract Builder dateOfBirth(String value);
//         public abstract Builder gender(String value);
//         public abstract Builder address(String value);
//         public abstract Builder phone(String value);
//         public abstract LoginResponse build();
//     }
// 
//     public static TypeAdapter<LoginResponse> typeAdapter(Gson gson) {
//         return new AutoValue_LoginResponse.GsonTypeAdapter(gson);
//     }
// 
//     //For testing purpose
//     public static LoginResponse create(Integer id, String name, String dateOfBirth, String gender,
//                                        String address, String phone) {
//         return new AutoValue_LoginResponse(id, name, dateOfBirth, gender, address, phone);
//     }
// 
// }


import javax.inject.Inject;
import hainguyen.impala.model.User;
import hainguyen.impala.network.LoginRepository;
import hainguyen.impala.network.model.LoginRequest;
import hainguyen.impala.network.model.LoginResponse;
import rx.Observable;
import rx.functions.Func1;
package hainguyen.impala.data;




public class UserProfile {

    private LoginRepository loginRepository;

    @Inject
// Path: impala/src/main/java/hainguyen/impala/model/User.java
// public class User {
// 
//     @SerializedName("FullName")
//     public String fullName;
// 
//     @SerializedName("DateOfBirth")
//     public String dateOfBirth;
// 
//     @SerializedName("Gender")
//     public String gender;
// 
//     @SerializedName("Address")
//     public String address;
// 
//     @SerializedName("Phone")
//     public String phone;
// 
//     public String getFullName() {
//         return fullName;
//     }
// 
//     public void setFullName(String fullName) {
//         this.fullName = fullName;
//     }
// 
//     public String getDateOfBirth() {
//         return dateOfBirth;
//     }
// 
//     public void setDateOfBirth(String dateOfBirth) {
//         this.dateOfBirth = dateOfBirth;
//     }
// 
//     public String getGender() {
//         return gender;
//     }
// 
//     public void setGender(String gender) {
//         this.gender = gender;
//     }
// 
//     public String getAddress() {
//         return address;
//     }
// 
//     public void setAddress(String address) {
//         this.address = address;
//     }
// 
//     public String getPhone() {
//         return phone;
//     }
// 
//     public void setPhone(String phone) {
//         this.phone = phone;
//     }
// 
//     public User transformFrom(LoginResponse response) {
//         this.fullName = response.fullName();
//         this.address = response.address();
//         this.dateOfBirth = response.dateOfBirth();
//         this.gender = response.gender();
//         this.phone = response.phone();
//         return null;
//     }
// }
// 
// Path: impala/src/main/java/hainguyen/impala/network/LoginRepository.java
// public interface LoginRepository {
//     Observable<LoginResponse> login(LoginRequest request);
// }
// 
// Path: impala/src/main/java/hainguyen/impala/network/model/LoginRequest.java
// @AutoValue
// public abstract class LoginRequest {
//     @SerializedName("Email")
//     public abstract String email();
// 
//     @SerializedName("Password")
//     public abstract  String password();
// 
//     public static Builder builder() {
//         return new AutoValue_LoginRequest.Builder();
//     }
// 
//     @AutoValue.Builder
//     public abstract static class Builder {
//         public abstract Builder setEmail(String value);
//         public abstract Builder setPassword(String value);
//         public abstract LoginRequest build();
//     }
// 
//     public static TypeAdapter<LoginRequest> typeAdapter(Gson gson) {
//         return new AutoValue_LoginRequest.GsonTypeAdapter(gson);
//     }
// }
// 
// Path: impala/src/main/java/hainguyen/impala/network/model/LoginResponse.java
// @AutoValue public abstract class LoginResponse {
// 
//     @SerializedName("UserId") public abstract Integer userID();
// 
//     @SerializedName("FullName") public abstract String fullName();
// 
//     @SerializedName("DateOfBirth") public abstract String dateOfBirth();
// 
//     @SerializedName("Gender") public abstract String gender();
// 
//     @SerializedName("Address") public abstract String address();
// 
//     @SerializedName("Phone") public abstract String phone();
// 
//     public static LoginResponse.Builder builder() {
//         return new AutoValue_LoginResponse.Builder();
//     }
// 
//     @AutoValue.Builder
//     public abstract static class Builder {
//         public abstract Builder userID(Integer value);
//         public abstract Builder fullName(String value);
//         public abstract Builder dateOfBirth(String value);
//         public abstract Builder gender(String value);
//         public abstract Builder address(String value);
//         public abstract Builder phone(String value);
//         public abstract LoginResponse build();
//     }
// 
//     public static TypeAdapter<LoginResponse> typeAdapter(Gson gson) {
//         return new AutoValue_LoginResponse.GsonTypeAdapter(gson);
//     }
// 
//     //For testing purpose
//     public static LoginResponse create(Integer id, String name, String dateOfBirth, String gender,
//                                        String address, String phone) {
//         return new AutoValue_LoginResponse(id, name, dateOfBirth, gender, address, phone);
//     }
// 
// }


// Path: impala/src/main/java/hainguyen/impala/data/UserProfile.java
import javax.inject.Inject;
import hainguyen.impala.model.User;
import hainguyen.impala.network.LoginRepository;
import hainguyen.impala.network.model.LoginRequest;
import hainguyen.impala.network.model.LoginResponse;
import rx.Observable;
import rx.functions.Func1;

package hainguyen.impala.data;




public class UserProfile {

    private LoginRepository loginRepository;

    @Inject
    public UserProfile(LoginRepository loginRepository) {