Commit d87409e8 by Nilu

Added new url for sign up of EAP users. Once sign up, a customer will get…

Added new url for sign up of EAP users. Once sign up, a customer will get created in stripe and the customer will be subscribed to default plan and coupon
parent f6ac0fdc
......@@ -17,6 +17,8 @@
<column name="verification_key" type="String" nullable="true" length="10"/>
<column name="is_account_verified" type="Boolean" nullable="true"/>
<column name="is_email_changed" type="Boolean" nullable="true"/>
<column name="stripe_reference" type="String" nullable="true" length="100"/>
<column name="stripe_subscription" type="String" nullable="true" length="100"/>
<column name="user_id" type="Long" length="11" nullable="true"/>
<column name="company_id" type="Long" length="11" nullable="true"/>
</NODE>
......
......@@ -16,6 +16,8 @@ CREATE TABLE oneit_sec_user_extension (
verification_key varchar(10) NULL,
is_account_verified char(1) NULL,
is_email_changed char(1) NULL,
stripe_reference varchar(100) NULL,
stripe_subscription varchar(100) NULL,
user_id numeric(12) NULL,
company_id numeric(12) NULL
);
......
......@@ -17,6 +17,8 @@ CREATE TABLE oneit_sec_user_extension (
verification_key varchar2(10) NULL,
is_account_verified char(1) NULL,
is_email_changed char(1) NULL,
stripe_reference varchar2(100) NULL,
stripe_subscription varchar2(100) NULL,
user_id number(12) NULL,
company_id number(12) NULL
);
......
......@@ -17,6 +17,8 @@ CREATE TABLE oneit_sec_user_extension (
verification_key varchar(10) NULL,
is_account_verified char(1) NULL,
is_email_changed char(1) NULL,
stripe_reference varchar(100) NULL,
stripe_subscription varchar(100) NULL,
user_id numeric(12) NULL,
company_id numeric(12) NULL
);
......
package performa.form;
import com.stripe.Stripe;
import com.stripe.exception.APIConnectionException;
import com.stripe.exception.APIException;
import com.stripe.exception.AuthenticationException;
import com.stripe.exception.CardException;
import com.stripe.exception.InvalidRequestException;
import com.stripe.model.Customer;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import oneit.appservices.config.ConfigMgr;
import oneit.business.content.Article;
import oneit.components.ParticipantInitialisationContext;
import oneit.email.ConfigurableArticleTemplateEmailer;
......@@ -20,6 +29,7 @@ import oneit.utils.*;
import performa.intercom.utils.IntercomUtils;
import performa.orm.*;
import performa.orm.types.RoleType;
import performa.utils.StripeUtils;
import performa.utils.Utils;
import performa.utils.WebUtils;
......@@ -100,6 +110,17 @@ public class SendCompanyUserInvitesFP extends SaveFP
{
companyUser.setRole(RoleType.ADMIN);
// Create customer in Stripe and subscribe for plan 0001 and coupon EAP. Only for 0.0.4.1 release
// Need to handle properly when plan and billing screens are added
StripeUtils.createCustomer(companyUser);
LogMgr.log(LOG, LogLevel.PROCESSING1,"Created customer in Stripe, customer reference ", companyUser.getStripeReference());
StripeUtils.subscribeCustomer(companyUser);
LogMgr.log(LOG, LogLevel.PROCESSING1,"Subscribed customer to default plan in Stripe, subscription reference ", companyUser.getStripeSubscription());
//process user invitations
for(CompanyUser cUser : company.getUsersSet())
{
......
......@@ -50,6 +50,8 @@ public abstract class BaseCompanyUser extends SecUserExtension
public static final String FIELD_VerificationKey = "VerificationKey";
public static final String FIELD_IsAccountVerified = "IsAccountVerified";
public static final String FIELD_IsEmailChanged = "IsEmailChanged";
public static final String FIELD_StripeReference = "StripeReference";
public static final String FIELD_StripeSubscription = "StripeSubscription";
public static final String FIELD_Email = "Email";
public static final String FIELD_Password = "Password";
public static final String FIELD_ConfirmPassword = "ConfirmPassword";
......@@ -71,6 +73,8 @@ public abstract class BaseCompanyUser extends SecUserExtension
private static final DefaultAttributeHelper<CompanyUser> HELPER_VerificationKey = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper<CompanyUser> HELPER_IsAccountVerified = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper<CompanyUser> HELPER_IsEmailChanged = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper<CompanyUser> HELPER_StripeReference = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper<CompanyUser> HELPER_StripeSubscription = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper<CompanyUser> HELPER_Email = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper<CompanyUser> HELPER_Password = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper<CompanyUser> HELPER_ConfirmPassword = DefaultAttributeHelper.INSTANCE;
......@@ -85,6 +89,8 @@ public abstract class BaseCompanyUser extends SecUserExtension
private String _VerificationKey;
private Boolean _IsAccountVerified;
private Boolean _IsEmailChanged;
private String _StripeReference;
private String _StripeSubscription;
private String _Email;
private String _Password;
private String _ConfirmPassword;
......@@ -112,6 +118,8 @@ public abstract class BaseCompanyUser extends SecUserExtension
private static final AttributeValidator[] FIELD_VerificationKey_Validators;
private static final AttributeValidator[] FIELD_IsAccountVerified_Validators;
private static final AttributeValidator[] FIELD_IsEmailChanged_Validators;
private static final AttributeValidator[] FIELD_StripeReference_Validators;
private static final AttributeValidator[] FIELD_StripeSubscription_Validators;
// Arrays of behaviour decorators
......@@ -138,6 +146,8 @@ public abstract class BaseCompanyUser extends SecUserExtension
FIELD_VerificationKey_Validators = (AttributeValidator[])setupAttribMetaData_VerificationKey(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_IsAccountVerified_Validators = (AttributeValidator[])setupAttribMetaData_IsAccountVerified(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_IsEmailChanged_Validators = (AttributeValidator[])setupAttribMetaData_IsEmailChanged(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_StripeReference_Validators = (AttributeValidator[])setupAttribMetaData_StripeReference(validatorMapping).toArray (new AttributeValidator[0]);
FIELD_StripeSubscription_Validators = (AttributeValidator[])setupAttribMetaData_StripeSubscription(validatorMapping).toArray (new AttributeValidator[0]);
REFERENCE_CompanyUser.initialiseReference ();
......@@ -371,6 +381,44 @@ public abstract class BaseCompanyUser extends SecUserExtension
return validators;
}
// Meta Info setup
private static List setupAttribMetaData_StripeReference(Map validatorMapping)
{
Map metaInfo = new HashMap ();
metaInfo.put ("dbcol", "stripe_reference");
metaInfo.put ("length", "100");
metaInfo.put ("name", "StripeReference");
metaInfo.put ("type", "String");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for CompanyUser.StripeReference:", metaInfo);
ATTRIBUTES_METADATA_CompanyUser.put (FIELD_StripeReference, Collections.unmodifiableMap (metaInfo));
List validators = BaseBusinessClass.getAttribValidators(CompanyUser.class, "StripeReference", metaInfo, validatorMapping);
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Validators for CompanyUser.StripeReference:", validators);
return validators;
}
// Meta Info setup
private static List setupAttribMetaData_StripeSubscription(Map validatorMapping)
{
Map metaInfo = new HashMap ();
metaInfo.put ("dbcol", "stripe_subscription");
metaInfo.put ("length", "100");
metaInfo.put ("name", "StripeSubscription");
metaInfo.put ("type", "String");
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG2, "Metadata for CompanyUser.StripeSubscription:", metaInfo);
ATTRIBUTES_METADATA_CompanyUser.put (FIELD_StripeSubscription, Collections.unmodifiableMap (metaInfo));
List validators = BaseBusinessClass.getAttribValidators(CompanyUser.class, "StripeSubscription", metaInfo, validatorMapping);
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Validators for CompanyUser.StripeSubscription:", validators);
return validators;
}
// END OF STATIC METADATA DEFINITION
......@@ -406,6 +454,8 @@ public abstract class BaseCompanyUser extends SecUserExtension
_VerificationKey = (String)(HELPER_VerificationKey.initialise (_VerificationKey));
_IsAccountVerified = (Boolean)(Boolean.FALSE);
_IsEmailChanged = (Boolean)(Boolean.FALSE);
_StripeReference = (String)(HELPER_StripeReference.initialise (_StripeReference));
_StripeSubscription = (String)(HELPER_StripeSubscription.initialise (_StripeSubscription));
_Email = (String)(HELPER_Email.initialise (_Email));
_Password = (String)(HELPER_Password.initialise (_Password));
_ConfirmPassword = (String)(HELPER_ConfirmPassword.initialise (_ConfirmPassword));
......@@ -1220,6 +1270,202 @@ public abstract class BaseCompanyUser extends SecUserExtension
}
/**
* Get the attribute StripeReference
*/
public String getStripeReference ()
{
assertValid();
String valToReturn = _StripeReference;
for (CompanyUserBehaviourDecorator bhd : CompanyUser_BehaviourDecorators)
{
valToReturn = bhd.getStripeReference ((CompanyUser)this, valToReturn);
}
return valToReturn;
}
/**
* Called prior to the attribute changing. Subclasses need not call super. If a field exception
* is thrown, the attribute change will fail. The new value is different to the old value.
*/
protected void preStripeReferenceChange (String newStripeReference) throws FieldException
{
}
/**
* Called after the attribute changes.
* If a field exception is thrown, the value is still changed, however it
* may lead to the TX being rolled back
*/
protected void postStripeReferenceChange () throws FieldException
{
}
public FieldWriteability getWriteability_StripeReference ()
{
return getFieldWritabilityUtil (FieldWriteability.TRUE);
}
/**
* Set the attribute StripeReference. Checks to ensure a new value
* has been supplied. If so, marks the field as altered and sets the attribute.
*/
public void setStripeReference (String newStripeReference) throws FieldException
{
boolean oldAndNewIdentical = HELPER_StripeReference.compare (_StripeReference, newStripeReference);
try
{
for (CompanyUserBehaviourDecorator bhd : CompanyUser_BehaviourDecorators)
{
newStripeReference = bhd.setStripeReference ((CompanyUser)this, newStripeReference);
oldAndNewIdentical = HELPER_StripeReference.compare (_StripeReference, newStripeReference);
}
if (FIELD_StripeReference_Validators.length > 0)
{
Object newStripeReferenceObj = HELPER_StripeReference.toObject (newStripeReference);
if (newStripeReferenceObj != null)
{
int loopMax = FIELD_StripeReference_Validators.length;
Map metadata = (Map)ATTRIBUTES_METADATA_CompanyUser.get (FIELD_StripeReference);
for (int v = 0 ; v < loopMax ; ++v)
{
FIELD_StripeReference_Validators[v].checkAttribute (this, FIELD_StripeReference, metadata, newStripeReferenceObj);
}
}
}
}
catch (FieldException e)
{
if (!oldAndNewIdentical)
{
e.setWouldModify ();
}
throw e;
}
if (!oldAndNewIdentical)
{
assertValid();
Debug.assertion (getWriteability_StripeReference () != FieldWriteability.FALSE, "Field StripeReference is not writeable");
preStripeReferenceChange (newStripeReference);
markFieldChange (FIELD_StripeReference);
_StripeReference = newStripeReference;
postFieldChange (FIELD_StripeReference);
postStripeReferenceChange ();
}
}
/**
* Get the attribute StripeSubscription
*/
public String getStripeSubscription ()
{
assertValid();
String valToReturn = _StripeSubscription;
for (CompanyUserBehaviourDecorator bhd : CompanyUser_BehaviourDecorators)
{
valToReturn = bhd.getStripeSubscription ((CompanyUser)this, valToReturn);
}
return valToReturn;
}
/**
* Called prior to the attribute changing. Subclasses need not call super. If a field exception
* is thrown, the attribute change will fail. The new value is different to the old value.
*/
protected void preStripeSubscriptionChange (String newStripeSubscription) throws FieldException
{
}
/**
* Called after the attribute changes.
* If a field exception is thrown, the value is still changed, however it
* may lead to the TX being rolled back
*/
protected void postStripeSubscriptionChange () throws FieldException
{
}
public FieldWriteability getWriteability_StripeSubscription ()
{
return getFieldWritabilityUtil (FieldWriteability.TRUE);
}
/**
* Set the attribute StripeSubscription. Checks to ensure a new value
* has been supplied. If so, marks the field as altered and sets the attribute.
*/
public void setStripeSubscription (String newStripeSubscription) throws FieldException
{
boolean oldAndNewIdentical = HELPER_StripeSubscription.compare (_StripeSubscription, newStripeSubscription);
try
{
for (CompanyUserBehaviourDecorator bhd : CompanyUser_BehaviourDecorators)
{
newStripeSubscription = bhd.setStripeSubscription ((CompanyUser)this, newStripeSubscription);
oldAndNewIdentical = HELPER_StripeSubscription.compare (_StripeSubscription, newStripeSubscription);
}
if (FIELD_StripeSubscription_Validators.length > 0)
{
Object newStripeSubscriptionObj = HELPER_StripeSubscription.toObject (newStripeSubscription);
if (newStripeSubscriptionObj != null)
{
int loopMax = FIELD_StripeSubscription_Validators.length;
Map metadata = (Map)ATTRIBUTES_METADATA_CompanyUser.get (FIELD_StripeSubscription);
for (int v = 0 ; v < loopMax ; ++v)
{
FIELD_StripeSubscription_Validators[v].checkAttribute (this, FIELD_StripeSubscription, metadata, newStripeSubscriptionObj);
}
}
}
}
catch (FieldException e)
{
if (!oldAndNewIdentical)
{
e.setWouldModify ();
}
throw e;
}
if (!oldAndNewIdentical)
{
assertValid();
Debug.assertion (getWriteability_StripeSubscription () != FieldWriteability.FALSE, "Field StripeSubscription is not writeable");
preStripeSubscriptionChange (newStripeSubscription);
markFieldChange (FIELD_StripeSubscription);
_StripeSubscription = newStripeSubscription;
postFieldChange (FIELD_StripeSubscription);
postStripeSubscriptionChange ();
}
}
/**
* Get the attribute Email
*/
public String getEmail ()
......@@ -1920,6 +2166,8 @@ public abstract class BaseCompanyUser extends SecUserExtension
oneit_sec_user_extensionPSet.setAttrib (FIELD_VerificationKey, HELPER_VerificationKey.toObject (_VerificationKey)); //
oneit_sec_user_extensionPSet.setAttrib (FIELD_IsAccountVerified, HELPER_IsAccountVerified.toObject (_IsAccountVerified)); //
oneit_sec_user_extensionPSet.setAttrib (FIELD_IsEmailChanged, HELPER_IsEmailChanged.toObject (_IsEmailChanged)); //
oneit_sec_user_extensionPSet.setAttrib (FIELD_StripeReference, HELPER_StripeReference.toObject (_StripeReference)); //
oneit_sec_user_extensionPSet.setAttrib (FIELD_StripeSubscription, HELPER_StripeSubscription.toObject (_StripeSubscription)); //
_Company.getPersistentSets (allSets);
}
......@@ -1943,6 +2191,8 @@ public abstract class BaseCompanyUser extends SecUserExtension
_VerificationKey = (String)(HELPER_VerificationKey.fromObject (_VerificationKey, oneit_sec_user_extensionPSet.getAttrib (FIELD_VerificationKey))); //
_IsAccountVerified = (Boolean)(HELPER_IsAccountVerified.fromObject (_IsAccountVerified, oneit_sec_user_extensionPSet.getAttrib (FIELD_IsAccountVerified))); //
_IsEmailChanged = (Boolean)(HELPER_IsEmailChanged.fromObject (_IsEmailChanged, oneit_sec_user_extensionPSet.getAttrib (FIELD_IsEmailChanged))); //
_StripeReference = (String)(HELPER_StripeReference.fromObject (_StripeReference, oneit_sec_user_extensionPSet.getAttrib (FIELD_StripeReference))); //
_StripeSubscription = (String)(HELPER_StripeSubscription.fromObject (_StripeSubscription, oneit_sec_user_extensionPSet.getAttrib (FIELD_StripeSubscription))); //
_Company.setFromPersistentSets (objectID, allSets);
}
......@@ -2031,6 +2281,24 @@ public abstract class BaseCompanyUser extends SecUserExtension
e.addException (ex);
}
try
{
setStripeReference (otherCompanyUser.getStripeReference ());
}
catch (FieldException ex)
{
e.addException (ex);
}
try
{
setStripeSubscription (otherCompanyUser.getStripeSubscription ());
}
catch (FieldException ex)
{
e.addException (ex);
}
}
}
......@@ -2054,6 +2322,8 @@ public abstract class BaseCompanyUser extends SecUserExtension
_VerificationKey = sourceCompanyUser._VerificationKey;
_IsAccountVerified = sourceCompanyUser._IsAccountVerified;
_IsEmailChanged = sourceCompanyUser._IsEmailChanged;
_StripeReference = sourceCompanyUser._StripeReference;
_StripeSubscription = sourceCompanyUser._StripeSubscription;
_Email = sourceCompanyUser._Email;
_Password = sourceCompanyUser._Password;
_ConfirmPassword = sourceCompanyUser._ConfirmPassword;
......@@ -2118,6 +2388,8 @@ public abstract class BaseCompanyUser extends SecUserExtension
_VerificationKey = (String)(HELPER_VerificationKey.readExternal (_VerificationKey, vals.get(FIELD_VerificationKey))); //
_IsAccountVerified = (Boolean)(HELPER_IsAccountVerified.readExternal (_IsAccountVerified, vals.get(FIELD_IsAccountVerified))); //
_IsEmailChanged = (Boolean)(HELPER_IsEmailChanged.readExternal (_IsEmailChanged, vals.get(FIELD_IsEmailChanged))); //
_StripeReference = (String)(HELPER_StripeReference.readExternal (_StripeReference, vals.get(FIELD_StripeReference))); //
_StripeSubscription = (String)(HELPER_StripeSubscription.readExternal (_StripeSubscription, vals.get(FIELD_StripeSubscription))); //
_Email = (String)(HELPER_Email.readExternal (_Email, vals.get(FIELD_Email))); //
_Password = (String)(HELPER_Password.readExternal (_Password, vals.get(FIELD_Password))); //
_ConfirmPassword = (String)(HELPER_ConfirmPassword.readExternal (_ConfirmPassword, vals.get(FIELD_ConfirmPassword))); //
......@@ -2141,6 +2413,8 @@ public abstract class BaseCompanyUser extends SecUserExtension
vals.put (FIELD_VerificationKey, HELPER_VerificationKey.writeExternal (_VerificationKey));
vals.put (FIELD_IsAccountVerified, HELPER_IsAccountVerified.writeExternal (_IsAccountVerified));
vals.put (FIELD_IsEmailChanged, HELPER_IsEmailChanged.writeExternal (_IsEmailChanged));
vals.put (FIELD_StripeReference, HELPER_StripeReference.writeExternal (_StripeReference));
vals.put (FIELD_StripeSubscription, HELPER_StripeSubscription.writeExternal (_StripeSubscription));
vals.put (FIELD_Email, HELPER_Email.writeExternal (_Email));
vals.put (FIELD_Password, HELPER_Password.writeExternal (_Password));
vals.put (FIELD_ConfirmPassword, HELPER_ConfirmPassword.writeExternal (_ConfirmPassword));
......@@ -2190,6 +2464,14 @@ public abstract class BaseCompanyUser extends SecUserExtension
{
listener.notifyFieldChange(this, other, FIELD_IsEmailChanged, HELPER_IsEmailChanged.toObject(this._IsEmailChanged), HELPER_IsEmailChanged.toObject(otherCompanyUser._IsEmailChanged));
}
if (!HELPER_StripeReference.compare(this._StripeReference, otherCompanyUser._StripeReference))
{
listener.notifyFieldChange(this, other, FIELD_StripeReference, HELPER_StripeReference.toObject(this._StripeReference), HELPER_StripeReference.toObject(otherCompanyUser._StripeReference));
}
if (!HELPER_StripeSubscription.compare(this._StripeSubscription, otherCompanyUser._StripeSubscription))
{
listener.notifyFieldChange(this, other, FIELD_StripeSubscription, HELPER_StripeSubscription.toObject(this._StripeSubscription), HELPER_StripeSubscription.toObject(otherCompanyUser._StripeSubscription));
}
// Compare single assocs
_Company.compare (otherCompanyUser._Company, listener);
......@@ -2224,6 +2506,8 @@ public abstract class BaseCompanyUser extends SecUserExtension
visitor.visitField(this, FIELD_VerificationKey, HELPER_VerificationKey.toObject(getVerificationKey()));
visitor.visitField(this, FIELD_IsAccountVerified, HELPER_IsAccountVerified.toObject(getIsAccountVerified()));
visitor.visitField(this, FIELD_IsEmailChanged, HELPER_IsEmailChanged.toObject(getIsEmailChanged()));
visitor.visitField(this, FIELD_StripeReference, HELPER_StripeReference.toObject(getStripeReference()));
visitor.visitField(this, FIELD_StripeSubscription, HELPER_StripeSubscription.toObject(getStripeSubscription()));
visitor.visitAssociation (_Company);
}
......@@ -2294,6 +2578,14 @@ public abstract class BaseCompanyUser extends SecUserExtension
{
return filter.matches (getIsEmailChanged ());
}
else if (attribName.equals (FIELD_StripeReference))
{
return filter.matches (getStripeReference ());
}
else if (attribName.equals (FIELD_StripeSubscription))
{
return filter.matches (getStripeSubscription ());
}
else if (attribName.equals (SINGLEREFERENCE_Company))
{
return filter.matches (getCompany ());
......@@ -2377,6 +2669,18 @@ public abstract class BaseCompanyUser extends SecUserExtension
return this;
}
public SearchAll andStripeReference (QueryFilter<String> filter)
{
filter.addFilter (context, "oneit_sec_user_extension.stripe_reference", "StripeReference");
return this;
}
public SearchAll andStripeSubscription (QueryFilter<String> filter)
{
filter.addFilter (context, "oneit_sec_user_extension.stripe_subscription", "StripeSubscription");
return this;
}
public SearchAll andUser (QueryFilter<SecUser> filter)
{
filter.addFilter (context, "oneit_sec_user_extension.user_id", "User");
......@@ -2494,6 +2798,18 @@ public abstract class BaseCompanyUser extends SecUserExtension
return this;
}
public SearchAllCompanyUsers andStripeReference (QueryFilter<String> filter)
{
filter.addFilter (context, "oneit_sec_user_extension.stripe_reference", "StripeReference");
return this;
}
public SearchAllCompanyUsers andStripeSubscription (QueryFilter<String> filter)
{
filter.addFilter (context, "oneit_sec_user_extension.stripe_subscription", "StripeSubscription");
return this;
}
public SearchAllCompanyUsers andUser (QueryFilter<SecUser> filter)
{
filter.addFilter (context, "oneit_sec_user_extension.user_id", "User");
......@@ -2618,6 +2934,18 @@ public abstract class BaseCompanyUser extends SecUserExtension
return this;
}
public SearchIdPin andStripeReference (QueryFilter<String> filter)
{
filter.addFilter (context, "oneit_sec_user_extension.stripe_reference", "StripeReference");
return this;
}
public SearchIdPin andStripeSubscription (QueryFilter<String> filter)
{
filter.addFilter (context, "oneit_sec_user_extension.stripe_subscription", "StripeSubscription");
return this;
}
public SearchIdPin andUser (QueryFilter<SecUser> filter)
{
filter.addFilter (context, "oneit_sec_user_extension.user_id", "User");
......@@ -2697,6 +3025,14 @@ public abstract class BaseCompanyUser extends SecUserExtension
{
return HELPER_IsEmailChanged.toObject (getIsEmailChanged ());
}
else if (attribName.equals (FIELD_StripeReference))
{
return HELPER_StripeReference.toObject (getStripeReference ());
}
else if (attribName.equals (FIELD_StripeSubscription))
{
return HELPER_StripeSubscription.toObject (getStripeSubscription ());
}
else if (attribName.equals (FIELD_Email))
{
return HELPER_Email.toObject (getEmail ());
......@@ -2754,6 +3090,14 @@ public abstract class BaseCompanyUser extends SecUserExtension
{
return HELPER_IsEmailChanged;
}
else if (attribName.equals (FIELD_StripeReference))
{
return HELPER_StripeReference;
}
else if (attribName.equals (FIELD_StripeSubscription))
{
return HELPER_StripeSubscription;
}
else if (attribName.equals (FIELD_Email))
{
return HELPER_Email;
......@@ -2811,6 +3155,14 @@ public abstract class BaseCompanyUser extends SecUserExtension
{
setIsEmailChanged ((Boolean)(HELPER_IsEmailChanged.fromObject (_IsEmailChanged, attribValue)));
}
else if (attribName.equals (FIELD_StripeReference))
{
setStripeReference ((String)(HELPER_StripeReference.fromObject (_StripeReference, attribValue)));
}
else if (attribName.equals (FIELD_StripeSubscription))
{
setStripeSubscription ((String)(HELPER_StripeSubscription.fromObject (_StripeSubscription, attribValue)));
}
else if (attribName.equals (FIELD_Email))
{
setEmail ((String)(HELPER_Email.fromObject (_Email, attribValue)));
......@@ -2875,6 +3227,14 @@ public abstract class BaseCompanyUser extends SecUserExtension
{
return getWriteability_IsEmailChanged ();
}
else if (fieldName.equals (FIELD_StripeReference))
{
return getWriteability_StripeReference ();
}
else if (fieldName.equals (FIELD_StripeSubscription))
{
return getWriteability_StripeSubscription ();
}
else if (fieldName.equals (SINGLEREFERENCE_Company))
{
return getWriteability_Company ();
......@@ -2941,6 +3301,16 @@ public abstract class BaseCompanyUser extends SecUserExtension
fields.add (FIELD_IsEmailChanged);
}
if (getWriteability_StripeReference () != FieldWriteability.TRUE)
{
fields.add (FIELD_StripeReference);
}
if (getWriteability_StripeSubscription () != FieldWriteability.TRUE)
{
fields.add (FIELD_StripeSubscription);
}
if (getWriteability_Email () != FieldWriteability.TRUE)
{
fields.add (FIELD_Email);
......@@ -2973,6 +3343,8 @@ public abstract class BaseCompanyUser extends SecUserExtension
result.add(HELPER_VerificationKey.getAttribObject (getClass (), _VerificationKey, false, FIELD_VerificationKey));
result.add(HELPER_IsAccountVerified.getAttribObject (getClass (), _IsAccountVerified, false, FIELD_IsAccountVerified));
result.add(HELPER_IsEmailChanged.getAttribObject (getClass (), _IsEmailChanged, false, FIELD_IsEmailChanged));
result.add(HELPER_StripeReference.getAttribObject (getClass (), _StripeReference, false, FIELD_StripeReference));
result.add(HELPER_StripeSubscription.getAttribObject (getClass (), _StripeSubscription, false, FIELD_StripeSubscription));
result.add(HELPER_Email.getAttribObject (getClass (), _Email, false, FIELD_Email));
result.add(HELPER_Password.getAttribObject (getClass (), _Password, false, FIELD_Password));
result.add(HELPER_ConfirmPassword.getAttribObject (getClass (), _ConfirmPassword, false, FIELD_ConfirmPassword));
......@@ -3171,6 +3543,42 @@ public abstract class BaseCompanyUser extends SecUserExtension
}
/**
* Get the attribute StripeReference
*/
public String getStripeReference (CompanyUser obj, String original)
{
return original;
}
/**
* Change the value set for attribute StripeReference.
* May modify the field beforehand
* Occurs before validation.
*/
public String setStripeReference (CompanyUser obj, String newStripeReference) throws FieldException
{
return newStripeReference;
}
/**
* Get the attribute StripeSubscription
*/
public String getStripeSubscription (CompanyUser obj, String original)
{
return original;
}
/**
* Change the value set for attribute StripeSubscription.
* May modify the field beforehand
* Occurs before validation.
*/
public String setStripeSubscription (CompanyUser obj, String newStripeSubscription) throws FieldException
{
return newStripeSubscription;
}
/**
* Get the attribute Email
*/
public String getEmail (CompanyUser obj, String original)
......@@ -3320,6 +3728,14 @@ public abstract class BaseCompanyUser extends SecUserExtension
{
return toIsEmailChanged ();
}
if (name.equals ("StripeReference"))
{
return toStripeReference ();
}
if (name.equals ("StripeSubscription"))
{
return toStripeSubscription ();
}
if (name.equals ("Company"))
{
return toCompany ();
......@@ -3351,6 +3767,10 @@ public abstract class BaseCompanyUser extends SecUserExtension
public PipeLine<From, Boolean> toIsAccountVerified () { return pipe(new ORMAttributePipe<Me, Boolean>(FIELD_IsAccountVerified)); }
public PipeLine<From, Boolean> toIsEmailChanged () { return pipe(new ORMAttributePipe<Me, Boolean>(FIELD_IsEmailChanged)); }
public PipeLine<From, String> toStripeReference () { return pipe(new ORMAttributePipe<Me, String>(FIELD_StripeReference)); }
public PipeLine<From, String> toStripeSubscription () { return pipe(new ORMAttributePipe<Me, String>(FIELD_StripeSubscription)); }
public Company.CompanyPipeLineFactory<From, Company> toCompany () { return toCompany (Filter.ALL); }
public Company.CompanyPipeLineFactory<From, Company> toCompany (Filter<Company> filter)
......
......@@ -21,6 +21,8 @@
<ATTRIB name="VerificationKey" type="String" dbcol="verification_key" length="10"/>
<ATTRIB name="IsAccountVerified" type="Boolean" dbcol="is_account_verified" defaultValue="Boolean.FALSE"/>
<ATTRIB name="IsEmailChanged" type="Boolean" dbcol="is_email_changed" defaultValue="Boolean.FALSE"/>
<ATTRIB name="StripeReference" type="String" dbcol="stripe_reference" length="100"/>
<ATTRIB name="StripeSubscription" type="String" dbcol="stripe_subscription" length="100"/>
<SINGLEREFERENCE name="User" type="SecUser" dbcol="user_id" backreferenceName="Extensions" inSuper='TRUE'/>
<SINGLEREFERENCE name="Company" type="Company" dbcol="company_id" backreferenceName="Users"/>
......
......@@ -36,6 +36,8 @@ public class CompanyUserPersistenceMgr extends SecUserExtensionPersistenceMgr
private String dummyVerificationKey;
private Boolean dummyIsAccountVerified;
private Boolean dummyIsEmailChanged;
private String dummyStripeReference;
private String dummyStripeSubscription;
// Static constants corresponding to attribute helpers
......@@ -47,6 +49,8 @@ public class CompanyUserPersistenceMgr extends SecUserExtensionPersistenceMgr
private static final DefaultAttributeHelper HELPER_VerificationKey = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper HELPER_IsAccountVerified = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper HELPER_IsEmailChanged = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper HELPER_StripeReference = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper HELPER_StripeSubscription = DefaultAttributeHelper.INSTANCE;
......@@ -61,10 +65,12 @@ public class CompanyUserPersistenceMgr extends SecUserExtensionPersistenceMgr
dummyVerificationKey = (String)(HELPER_VerificationKey.initialise (dummyVerificationKey));
dummyIsAccountVerified = (Boolean)(HELPER_IsAccountVerified.initialise (dummyIsAccountVerified));
dummyIsEmailChanged = (Boolean)(HELPER_IsEmailChanged.initialise (dummyIsEmailChanged));
dummyStripeReference = (String)(HELPER_StripeReference.initialise (dummyStripeReference));
dummyStripeSubscription = (String)(HELPER_StripeSubscription.initialise (dummyStripeSubscription));
}
private String SELECT_COLUMNS = "{PREFIX}oneit_sec_user_extension.object_id as id, {PREFIX}oneit_sec_user_extension.object_LAST_UPDATED_DATE as LAST_UPDATED_DATE, {PREFIX}oneit_sec_user_extension.object_CREATED_DATE as CREATED_DATE, {PREFIX}oneit_sec_user_extension.object_TYPE as OBJECT_TYPE, {PREFIX}oneit_sec_user_extension.forgot_password_mail_send_date, {PREFIX}oneit_sec_user_extension.forgot_password_key, {PREFIX}oneit_sec_user_extension.role_type, {PREFIX}oneit_sec_user_extension.phone, {PREFIX}oneit_sec_user_extension.verification_mail_send_date, {PREFIX}oneit_sec_user_extension.verification_key, {PREFIX}oneit_sec_user_extension.is_account_verified, {PREFIX}oneit_sec_user_extension.is_email_changed, {PREFIX}oneit_sec_user_extension.user_id, {PREFIX}oneit_sec_user_extension.company_id, 1 AS commasafe ";
private String SELECT_COLUMNS = "{PREFIX}oneit_sec_user_extension.object_id as id, {PREFIX}oneit_sec_user_extension.object_LAST_UPDATED_DATE as LAST_UPDATED_DATE, {PREFIX}oneit_sec_user_extension.object_CREATED_DATE as CREATED_DATE, {PREFIX}oneit_sec_user_extension.object_TYPE as OBJECT_TYPE, {PREFIX}oneit_sec_user_extension.forgot_password_mail_send_date, {PREFIX}oneit_sec_user_extension.forgot_password_key, {PREFIX}oneit_sec_user_extension.role_type, {PREFIX}oneit_sec_user_extension.phone, {PREFIX}oneit_sec_user_extension.verification_mail_send_date, {PREFIX}oneit_sec_user_extension.verification_key, {PREFIX}oneit_sec_user_extension.is_account_verified, {PREFIX}oneit_sec_user_extension.is_email_changed, {PREFIX}oneit_sec_user_extension.stripe_reference, {PREFIX}oneit_sec_user_extension.stripe_subscription, {PREFIX}oneit_sec_user_extension.user_id, {PREFIX}oneit_sec_user_extension.company_id, 1 AS commasafe ";
private String SELECT_JOINS = "";
public BaseBusinessClass fetchByID(ObjectID id, PersistentSetCollection allPSets, RDBMSPersistenceContext context, SQLManager sqlMgr) throws SQLException, StorageException
......@@ -124,6 +130,8 @@ public class CompanyUserPersistenceMgr extends SecUserExtensionPersistenceMgr
!oneit_sec_user_extensionPSet.containsAttrib(CompanyUser.FIELD_VerificationKey)||
!oneit_sec_user_extensionPSet.containsAttrib(CompanyUser.FIELD_IsAccountVerified)||
!oneit_sec_user_extensionPSet.containsAttrib(CompanyUser.FIELD_IsEmailChanged)||
!oneit_sec_user_extensionPSet.containsAttrib(CompanyUser.FIELD_StripeReference)||
!oneit_sec_user_extensionPSet.containsAttrib(CompanyUser.FIELD_StripeSubscription)||
!oneit_sec_user_extensionPSet.containsAttrib(CompanyUser.SINGLEREFERENCE_User)||
!oneit_sec_user_extensionPSet.containsAttrib(CompanyUser.SINGLEREFERENCE_Company))
{
......@@ -224,10 +232,10 @@ public class CompanyUserPersistenceMgr extends SecUserExtensionPersistenceMgr
{
int rowsUpdated = executeStatement (sqlMgr,
"UPDATE {PREFIX}oneit_sec_user_extension " +
"SET forgot_password_mail_send_date = ?, forgot_password_key = ?, role_type = ?, phone = ?, verification_mail_send_date = ?, verification_key = ?, is_account_verified = ?, is_email_changed = ?, user_id = ? , company_id = ? , object_LAST_UPDATED_DATE = " + sqlMgr.getPortabilityServices ().getTimestampExpression () + " " +
"SET forgot_password_mail_send_date = ?, forgot_password_key = ?, role_type = ?, phone = ?, verification_mail_send_date = ?, verification_key = ?, is_account_verified = ?, is_email_changed = ?, stripe_reference = ?, stripe_subscription = ?, user_id = ? , company_id = ? , object_LAST_UPDATED_DATE = " + sqlMgr.getPortabilityServices ().getTimestampExpression () + " " +
"WHERE oneit_sec_user_extension.object_id = ? AND " + getConcurrencyCheck (sqlMgr, "object_LAST_UPDATED_DATE", obj.getObjectLastModified ()) + " ",
CollectionUtils.listEntry (HELPER_ForgotPasswordMailSendDate.getForSQL(dummyForgotPasswordMailSendDate, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_ForgotPasswordMailSendDate))).listEntry (HELPER_ForgotPasswordKey.getForSQL(dummyForgotPasswordKey, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_ForgotPasswordKey))).listEntry (HELPER_Role.getForSQL(dummyRole, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_Role))).listEntry (HELPER_Phone.getForSQL(dummyPhone, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_Phone))).listEntry (HELPER_VerificationMailSendDate.getForSQL(dummyVerificationMailSendDate, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_VerificationMailSendDate))).listEntry (HELPER_VerificationKey.getForSQL(dummyVerificationKey, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_VerificationKey))).listEntry (HELPER_IsAccountVerified.getForSQL(dummyIsAccountVerified, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_IsAccountVerified))).listEntry (HELPER_IsEmailChanged.getForSQL(dummyIsEmailChanged, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_IsEmailChanged))).listEntry (SQLManager.CheckNull((Long)(oneit_sec_user_extensionPSet.getAttrib (CompanyUser.SINGLEREFERENCE_User)))).listEntry (SQLManager.CheckNull((Long)(oneit_sec_user_extensionPSet.getAttrib (CompanyUser.SINGLEREFERENCE_Company)))).listEntry (objectID.longID ()).listEntry (obj.getObjectLastModified ()).toList().toArray());
CollectionUtils.listEntry (HELPER_ForgotPasswordMailSendDate.getForSQL(dummyForgotPasswordMailSendDate, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_ForgotPasswordMailSendDate))).listEntry (HELPER_ForgotPasswordKey.getForSQL(dummyForgotPasswordKey, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_ForgotPasswordKey))).listEntry (HELPER_Role.getForSQL(dummyRole, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_Role))).listEntry (HELPER_Phone.getForSQL(dummyPhone, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_Phone))).listEntry (HELPER_VerificationMailSendDate.getForSQL(dummyVerificationMailSendDate, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_VerificationMailSendDate))).listEntry (HELPER_VerificationKey.getForSQL(dummyVerificationKey, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_VerificationKey))).listEntry (HELPER_IsAccountVerified.getForSQL(dummyIsAccountVerified, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_IsAccountVerified))).listEntry (HELPER_IsEmailChanged.getForSQL(dummyIsEmailChanged, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_IsEmailChanged))).listEntry (HELPER_StripeReference.getForSQL(dummyStripeReference, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_StripeReference))).listEntry (HELPER_StripeSubscription.getForSQL(dummyStripeSubscription, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_StripeSubscription))).listEntry (SQLManager.CheckNull((Long)(oneit_sec_user_extensionPSet.getAttrib (CompanyUser.SINGLEREFERENCE_User)))).listEntry (SQLManager.CheckNull((Long)(oneit_sec_user_extensionPSet.getAttrib (CompanyUser.SINGLEREFERENCE_Company)))).listEntry (objectID.longID ()).listEntry (obj.getObjectLastModified ()).toList().toArray());
if (rowsUpdated != 1)
{
......@@ -652,6 +660,8 @@ public class CompanyUserPersistenceMgr extends SecUserExtensionPersistenceMgr
oneit_sec_user_extensionPSet.setAttrib(CompanyUser.FIELD_VerificationKey, HELPER_VerificationKey.getFromRS(dummyVerificationKey, r, "verification_key"));
oneit_sec_user_extensionPSet.setAttrib(CompanyUser.FIELD_IsAccountVerified, HELPER_IsAccountVerified.getFromRS(dummyIsAccountVerified, r, "is_account_verified"));
oneit_sec_user_extensionPSet.setAttrib(CompanyUser.FIELD_IsEmailChanged, HELPER_IsEmailChanged.getFromRS(dummyIsEmailChanged, r, "is_email_changed"));
oneit_sec_user_extensionPSet.setAttrib(CompanyUser.FIELD_StripeReference, HELPER_StripeReference.getFromRS(dummyStripeReference, r, "stripe_reference"));
oneit_sec_user_extensionPSet.setAttrib(CompanyUser.FIELD_StripeSubscription, HELPER_StripeSubscription.getFromRS(dummyStripeSubscription, r, "stripe_subscription"));
oneit_sec_user_extensionPSet.setAttrib(CompanyUser.SINGLEREFERENCE_User, r.getObject ("user_id"));
oneit_sec_user_extensionPSet.setAttrib(CompanyUser.SINGLEREFERENCE_Company, r.getObject ("company_id"));
......@@ -671,10 +681,10 @@ public class CompanyUserPersistenceMgr extends SecUserExtensionPersistenceMgr
{
executeStatement (sqlMgr,
"INSERT INTO {PREFIX}oneit_sec_user_extension " +
" (forgot_password_mail_send_date, forgot_password_key, role_type, phone, verification_mail_send_date, verification_key, is_account_verified, is_email_changed, user_id, company_id, object_id, object_LAST_UPDATED_DATE, object_CREATED_DATE, object_TYPE) " +
" (forgot_password_mail_send_date, forgot_password_key, role_type, phone, verification_mail_send_date, verification_key, is_account_verified, is_email_changed, stripe_reference, stripe_subscription, user_id, company_id, object_id, object_LAST_UPDATED_DATE, object_CREATED_DATE, object_TYPE) " +
"VALUES " +
" (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ", " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ", ?)",
CollectionUtils.listEntry (HELPER_ForgotPasswordMailSendDate.getForSQL(dummyForgotPasswordMailSendDate, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_ForgotPasswordMailSendDate))).listEntry (HELPER_ForgotPasswordKey.getForSQL(dummyForgotPasswordKey, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_ForgotPasswordKey))).listEntry (HELPER_Role.getForSQL(dummyRole, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_Role))).listEntry (HELPER_Phone.getForSQL(dummyPhone, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_Phone))).listEntry (HELPER_VerificationMailSendDate.getForSQL(dummyVerificationMailSendDate, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_VerificationMailSendDate))).listEntry (HELPER_VerificationKey.getForSQL(dummyVerificationKey, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_VerificationKey))).listEntry (HELPER_IsAccountVerified.getForSQL(dummyIsAccountVerified, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_IsAccountVerified))).listEntry (HELPER_IsEmailChanged.getForSQL(dummyIsEmailChanged, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_IsEmailChanged))) .listEntry (SQLManager.CheckNull((Long)(oneit_sec_user_extensionPSet.getAttrib (CompanyUser.SINGLEREFERENCE_User)))).listEntry (SQLManager.CheckNull((Long)(oneit_sec_user_extensionPSet.getAttrib (CompanyUser.SINGLEREFERENCE_Company)))) .listEntry (objectID.longID ()).listEntry (context.getTag (obj)).toList().toArray());
" (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ", " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ", ?)",
CollectionUtils.listEntry (HELPER_ForgotPasswordMailSendDate.getForSQL(dummyForgotPasswordMailSendDate, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_ForgotPasswordMailSendDate))).listEntry (HELPER_ForgotPasswordKey.getForSQL(dummyForgotPasswordKey, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_ForgotPasswordKey))).listEntry (HELPER_Role.getForSQL(dummyRole, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_Role))).listEntry (HELPER_Phone.getForSQL(dummyPhone, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_Phone))).listEntry (HELPER_VerificationMailSendDate.getForSQL(dummyVerificationMailSendDate, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_VerificationMailSendDate))).listEntry (HELPER_VerificationKey.getForSQL(dummyVerificationKey, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_VerificationKey))).listEntry (HELPER_IsAccountVerified.getForSQL(dummyIsAccountVerified, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_IsAccountVerified))).listEntry (HELPER_IsEmailChanged.getForSQL(dummyIsEmailChanged, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_IsEmailChanged))).listEntry (HELPER_StripeReference.getForSQL(dummyStripeReference, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_StripeReference))).listEntry (HELPER_StripeSubscription.getForSQL(dummyStripeSubscription, oneit_sec_user_extensionPSet.getAttrib (CompanyUser.FIELD_StripeSubscription))) .listEntry (SQLManager.CheckNull((Long)(oneit_sec_user_extensionPSet.getAttrib (CompanyUser.SINGLEREFERENCE_User)))).listEntry (SQLManager.CheckNull((Long)(oneit_sec_user_extensionPSet.getAttrib (CompanyUser.SINGLEREFERENCE_Company)))) .listEntry (objectID.longID ()).listEntry (context.getTag (obj)).toList().toArray());
oneit_sec_user_extensionPSet.setStatus (PersistentSetStatus.PROCESSED);
}
......
package performa.utils;
import com.stripe.Stripe;
import com.stripe.exception.APIConnectionException;
import com.stripe.exception.APIException;
import com.stripe.exception.AuthenticationException;
import com.stripe.exception.CardException;
import com.stripe.exception.InvalidRequestException;
import com.stripe.model.Customer;
import com.stripe.model.Plan;
import com.stripe.model.Subscription;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import oneit.appservices.config.ConfigMgr;
import oneit.logging.LogLevel;
import oneit.logging.LogMgr;
import oneit.logging.LoggingArea;
import oneit.objstore.StorageException;
import oneit.security.SecUser;
import oneit.utils.DateDiff;
import oneit.utils.parsers.FieldException;
import performa.orm.CompanyUser;
public class StripeUtils
{
public static final String STRIPE_KEY = ConfigMgr.getKeyfileString("stripe.key","");
public static final String STRIPE_PUB_KEY = ConfigMgr.getKeyfileString("stripe.pubkey","");
public static final String STRIPE_PLAN_ID = ConfigMgr.getKeyfileString("stripe.plan.id","0001");
public static final String STRIPE_COUPON_ID = ConfigMgr.getKeyfileString("stripe.coupon.id","EAP");
static
{
Stripe.apiKey = STRIPE_KEY;
}
public static void createCustomer(CompanyUser companyUser) throws FieldException
{
try
{
SecUser secUser = companyUser.getUser();
Map<String, Object> customerParams = new HashMap<>();
customerParams.put("description", companyUser.getCompany());
customerParams.put("email", secUser.getEmail());
Customer customer = Customer.create(customerParams);
companyUser.setStripeReference(customer.getId());
}
catch (StorageException | AuthenticationException | InvalidRequestException | APIConnectionException | CardException | APIException ex)
{
LogMgr.log(LoggingArea.ALL, LogLevel.PROCESSING1, ex, "Error while creating a customer in stripe");
}
}
public static void subscribeCustomer(CompanyUser companyUser) throws FieldException
{
try
{
Plan plan = Plan.retrieve(STRIPE_PLAN_ID);
Date today = new Date();
Date trialExpiry = DateDiff.add(today, Calendar.DATE, plan.getTrialPeriodDays());
Map<String, Object> item = new HashMap<>();
item.put("plan", STRIPE_PLAN_ID);
Map<String, Object> items = new HashMap<>();
items.put("0", item);
Map<String, Object> params = new HashMap<>();
params.put("items", items);
params.put("coupon", STRIPE_COUPON_ID);
params.put("customer", companyUser.getStripeReference());
params.put("trial_end", trialExpiry.getTime() / 1000L);
Subscription subscription = Subscription.create(params);
companyUser.setStripeSubscription(subscription.getId());
}
catch (StorageException | AuthenticationException | InvalidRequestException | APIConnectionException | CardException | APIException ex)
{
LogMgr.log(LoggingArea.ALL, LogLevel.PROCESSING1, ex, "Error while creating subscrition in stripe");
}
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!-- @AutoRun -->
<OBJECTS name="" xmlns:oneit="http://www.1iT.com.au">
<NODE name="Script" factory="Vector">
<NODE name="DDL" factory="Participant" class="oneit.sql.transfer.RedefineTableOperation">
<tableName factory="String">oneit_sec_user_extension</tableName>
<column name="stripe_reference" type="String" nullable="true" length="100"/>
<column name="stripe_subscription" type="String" nullable="true" length="100"/>
</NODE>
</NODE>
</OBJECTS>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment