com.theagilemonkeys.meets.magento.models.MeetsMageAddress Maven / Gradle / Ivy
package com.theagilemonkeys.meets.magento.models;
import com.theagilemonkeys.meets.apimethod.ApiMethodModelHelper;
import com.theagilemonkeys.meets.magento.methods.CustomerAddressInfo;
import com.theagilemonkeys.meets.magento.methods.CustomerAddressUpdate;
import com.theagilemonkeys.meets.magento.models.base.MeetsMageModel;
import com.theagilemonkeys.meets.models.MeetsAddress;
import java.util.HashMap;
import java.util.Map;
import static com.theagilemonkeys.meets.utils.StringUtils.safeValueOf;
/**
* Android Meets SDK
* Original work Copyright (c) 2014 [TheAgileMonkeys]
*
* @author Álvaro López Espinosa
*/
@SuppressWarnings("unchecked")
public class MeetsMageAddress extends MeetsMageModel implements MeetsAddress {
final static public String MODE_BILLING = "billing";
final static public String MODE_SHIPPING = "shipping";
private Integer customer_address_id;
private String address_id; // The same as customer_address_id.
private String mode;
private String firstname;
private String middlename;
private String lastname;
private String prefix;
private String suffix;
private String company;
private Object street; //Something really weird happens when use String as type field. The server does not recognizes it
private String city;
private int region_id;
private String region;
private String postcode;
private String country_id;
private String telephone;
private String fax;
private boolean is_default_billing;
private boolean is_default_shipping;
//This is specific of magento
public MeetsAddress setMode(String mode) {
this.mode = mode;
return this;
}
@Override
public MeetsAddress fetch() {
ApiMethodModelHelper.DelayedParams params = new ApiMethodModelHelper.DelayedParams() {
@Override
public Map buildParams() {
Map params = new HashMap();
params.put("addressId", getId());
return params;
}
};
pushMethod(new CustomerAddressInfo(), params)
.done(updateFromResult)
.always(triggerListeners);
return this;
}
@Override
public MeetsAddress setId(int id) {
customer_address_id = id;
address_id = String.valueOf(id);
return this;
}
@Override
public int getId() {
if(customer_address_id != null) {
return customer_address_id;
}
if(address_id != null){
return Integer.parseInt(address_id);
}
return 0;
}
@Override
public MeetsAddress setFirstName(String firstname) {
this.firstname = firstname;
return this;
}
@Override
public MeetsAddress setLastName(String lastname) {
this.lastname = lastname;
return this;
}
@Override
public MeetsAddress setCompany(String company) {
this.company = company;
return this;
}
@Override
public MeetsAddress setStreet(String street) {
this.street = street;
return this;
}
@Override
public MeetsAddress setCity(String city) {
this.city = city;
return this;
}
@Override
public MeetsAddress setRegionId(int regionId) {
this.region_id = regionId;
return this;
}
@Override
public MeetsAddress setRegion(String region) {
this.region = region;
return this;
}
@Override
public MeetsAddress setPostCode(String postcode) {
this.postcode = postcode;
return this;
}
@Override
public MeetsAddress setCountryId(String countryId) {
country_id = countryId;
return this;
}
@Override
public MeetsAddress setTelephone(String telephone) {
this.telephone = telephone;
return this;
}
@Override
public MeetsAddress setFax(String fax) {
this.fax = fax;
return this;
}
@Override
public MeetsAddress setDefaultBilling(boolean defaultBilling) {
is_default_billing = defaultBilling;
return this;
}
@Override
public MeetsAddress setDefaultShipping(boolean defaultShipping) {
is_default_shipping = defaultShipping;
return this;
}
MeetsAddress save() {
ApiMethodModelHelper.DelayedParams params = new ApiMethodModelHelper.DelayedParams() {
@Override
public Map buildParams() {
Map params = new HashMap();
params.put("addressId", getId());
params.put("addressData", MeetsMageAddress.this);
return params;
}
};
forceNextCacheToBe(false);
pushMethod(new CustomerAddressUpdate(), params).always(triggerListeners);
return this;
}
@Override
public String getFirstName() {
return firstname;
}
@Override
public String getLastName() {
return lastname;
}
@Override
public String getCompany() {
return company;
}
@Override
public String getStreet() {
return (String) street;
}
@Override
public String getCity() {
return city;
}
@Override
public int getRegionId() {
return region_id;
}
@Override
public String getRegion() {
return region;
}
@Override
public String getPostCode() {
return postcode;
}
@Override
public String getCountryId() {
return country_id;
}
@Override
public String getTelephone() {
return telephone;
}
@Override
public String getFax() {
return fax;
}
@Override
public boolean isDefaultBilling() {
return is_default_billing;
}
@Override
public boolean isDefaultShipping() {
return is_default_shipping;
}
@Override
public String toString() {
String res = safeValueOf(getFirstName()) + ' ' + safeValueOf(getLastName()) + '\n' +
safeValueOf(getStreet()) + '\n' +
safeValueOf(getCity()) + ", " + safeValueOf(getRegion()) + ", " + safeValueOf(getPostCode()) + '\n' +
safeValueOf(getCountryId()) + '\n' +
safeValueOf(getTelephone());
return res;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy