![JAR search and dependency download from the Maven repository](/logo.png)
com.theagilemonkeys.meets.magento.models.MeetsMageCustomer Maven / Gradle / Ivy
package com.theagilemonkeys.meets.magento.models;
import com.theagilemonkeys.meets.apimethod.ApiMethod;
import com.theagilemonkeys.meets.apimethod.ApiMethodModelHelper;
import com.theagilemonkeys.meets.Meets;
import com.theagilemonkeys.meets.magento.MageApiMethodCollectionResponseClasses;
import com.theagilemonkeys.meets.magento.connector.MeetsMageConnector;
import com.theagilemonkeys.meets.magento.methods.*;
import com.theagilemonkeys.meets.magento.models.base.MeetsMageModel;
import com.theagilemonkeys.meets.magento.utils.soap.SoapSerializableList;
import com.theagilemonkeys.meets.magento.utils.soap.SoapSerializableMap;
import com.theagilemonkeys.meets.models.MeetsAddress;
import com.theagilemonkeys.meets.models.MeetsCustomer;
import com.theagilemonkeys.meets.utils.StringUtils;
import org.jdeferred.Deferred;
import org.jdeferred.DoneCallback;
import org.jdeferred.DonePipe;
import org.jdeferred.FailCallback;
import org.jdeferred.impl.DeferredObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Android Meets SDK
* Original work Copyright (c) 2014 [TheAgileMonkeys]
*
* @author Álvaro López Espinosa
*/
@SuppressWarnings("unchecked")
public class MeetsMageCustomer extends MeetsMageModel implements MeetsCustomer {
public final static String MODE_GUEST = "guest";
public final static String MODE_CUSTOMER = "customer";
private String mode = MODE_CUSTOMER;
private int customer_id;
private String email;
private String firstname;
private String lastname;
private String taxvat;
private int store_id;
private int website_id;
private String password;
private String password_hash;
private List addresses;
{
MeetsMageConnector mageConnector = (MeetsMageConnector) Meets.getConnector();
store_id = mageConnector.getStoreId();
website_id = mageConnector.getWebsiteId();
}
//This is specific of magento
public MeetsCustomer setMode(String mode) {
this.mode = mode;
return this;
}
@Override
public MeetsCustomer fetch() {
ApiMethodModelHelper.DelayedParams params = new ApiMethodModelHelper.DelayedParams() {
@Override
public Map buildParams() {
Map params = new HashMap();
params.put("customerId", getId());
return params;
}
};
pushMethod(new CustomerCustomerInfo(), params)
.done(updateFromResult)
.always(triggerListeners);
return this;
}
@Override
public MeetsCustomer setId(int id) {
customer_id = id;
return this;
}
@Override
public int getId() {
return customer_id;
}
@Override
public String getFirstName() {
return firstname;
}
@Override
public String getLastName() {
return lastname;
}
@Override
public String getEmail() {
return email;
}
@Override
public String getVatNumber() {
return taxvat;
}
@Override
public MeetsAddress getDefaultBillingAddress() {
for (MeetsAddress address : getAddresses()){
if ( address.isDefaultBilling() ) return address;
}
return null;
}
@Override
public MeetsAddress getDefaultShippingAddress() {
for (MeetsAddress address : getAddresses()){
if ( address.isDefaultShipping() ) return address;
}
return null;
}
@Override
public List getAddresses() {
if (addresses == null)
addresses = new ArrayList();
return addresses;
}
private MeetsCustomer create() {
ApiMethodModelHelper.DelayedParams params = new ApiMethodModelHelper.DelayedParams() {
@Override
public Map buildParams() {
Map params = new HashMap();
params.put("customerData", MeetsMageCustomer.this);
return params;
}
};
forceNextCacheToBe(false);
pushMethod(new CustomerCustomerCreate(), params)
.done(updateFromResult)
.always(triggerListeners);
return this;
}
@Override
public MeetsCustomer save() {
if (isNew()){
return create();
}
ApiMethodModelHelper.DelayedParams params = new ApiMethodModelHelper.DelayedParams() {
@Override
public Map buildParams() {
Map params = new HashMap();
params.put("customerId", getId());
params.put("customerData", MeetsMageCustomer.this);
return params;
}
};
forceNextCacheToBe(false);
pushMethod(new CustomerCustomerUpdate(), params).always(triggerListeners);
return this;
}
@Override
public MeetsCustomer fetchByEmail(final String email) {
return internalFetchByEmail(email, null);
}
@Override
public MeetsCustomer fetchByEmailAndCheckPassword(String email, String password) {
return internalFetchByEmail(email, password);
}
private MeetsCustomer internalFetchByEmail(final String email, final String password) {
ApiMethodModelHelper.DelayedParams params = new ApiMethodModelHelper.DelayedParams() {
@Override
public Map buildParams() {
List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy