Skip to content

Commit

Permalink
refactor(wallet): rename rule_type into trigger (#1501)
Browse files Browse the repository at this point in the history
  • Loading branch information
keellyp authored May 16, 2024
1 parent b6e5288 commit b664d8a
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 48 deletions.
14 changes: 6 additions & 8 deletions src/components/wallets/WalletCodeSnippet.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { CodeSnippet } from '~/components/CodeSnippet'
import { envGlobalVar } from '~/core/apolloClient'
import { serializeAmount } from '~/core/serializers/serializeAmount'
import { RecurringTransactionRuleTypeEnum } from '~/generated/graphql'
import { RecurringTransactionTriggerEnum } from '~/generated/graphql'
import { TWalletDataForm } from '~/pages/WalletForm'

const { apiUrl } = envGlobalVar()
Expand Down Expand Up @@ -55,19 +55,17 @@ curl --location --request ${isEdition ? 'PUT' : 'POST'} "${apiUrl}/api/v1/wallet
"lago_id": "${recurringTransactionRules[0].lagoId}",`
: ''
}
"rule_type": "${
wallet.recurringTransactionRules?.[0].ruleType || '__MUST_BE_DEFINED__'
}"${
wallet.recurringTransactionRules?.[0].ruleType ===
RecurringTransactionRuleTypeEnum.Interval
"trigger": "${wallet.recurringTransactionRules?.[0].trigger || '__MUST_BE_DEFINED__'}"${
wallet.recurringTransactionRules?.[0].trigger ===
RecurringTransactionTriggerEnum.Interval
? `,
"interval": "${
wallet.recurringTransactionRules?.[0].interval || '__MUST_BE_DEFINED__'
}"`
: ''
}${
wallet.recurringTransactionRules?.[0].ruleType ===
RecurringTransactionRuleTypeEnum.Threshold
wallet.recurringTransactionRules?.[0].trigger ===
RecurringTransactionTriggerEnum.Threshold
? `,
"threshold_credits": "${
wallet.recurringTransactionRules?.[0].thresholdCredits || '__MUST_BE_DEFINED__'
Expand Down
10 changes: 5 additions & 5 deletions src/components/wallets/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {
CreateRecurringTransactionRuleInput,
CurrencyEnum,
RecurringTransactionIntervalEnum,
RecurringTransactionRuleTypeEnum,
RecurringTransactionTriggerEnum,
TimezoneEnum,
UpdateRecurringTransactionRuleInput,
} from '~/generated/graphql'
Expand Down Expand Up @@ -36,7 +36,7 @@ export const getWordingForWalletCreationAlert = ({
}) + '\n'

if (
rulesValues?.ruleType === RecurringTransactionRuleTypeEnum.Threshold &&
rulesValues?.trigger === RecurringTransactionTriggerEnum.Threshold &&
!!rulesValues?.thresholdCredits
) {
text += translate('text_6560809c38fb9de88d8a5386', {
Expand All @@ -45,7 +45,7 @@ export const getWordingForWalletCreationAlert = ({
currency,
}),
})
} else if (rulesValues?.ruleType === RecurringTransactionRuleTypeEnum.Interval) {
} else if (rulesValues?.trigger === RecurringTransactionTriggerEnum.Interval) {
const GMT = getTimezoneConfig(TimezoneEnum.TzUtc).name
const gmtDateRef = DateTime.now().setZone(GMT).toISO() || ''
const customerZone = getTimezoneConfig(customerTimezone).name
Expand Down Expand Up @@ -110,15 +110,15 @@ export const getWordingForWalletEditionAlert = ({
const totalCreditCount =
Number(rulesValues?.paidCredits || 0) + Number(rulesValues?.grantedCredits || 0)

if (rulesValues?.ruleType === RecurringTransactionRuleTypeEnum.Threshold) {
if (rulesValues?.trigger === RecurringTransactionTriggerEnum.Threshold) {
return translate('text_6560809c38fb9de88d8a5406', {
totalCreditCount,
thresholdCredits: intlFormatNumber(Number(rulesValues?.thresholdCredits), {
currencyDisplay: 'symbol',
currency,
}),
})
} else if (rulesValues?.ruleType === RecurringTransactionRuleTypeEnum.Interval) {
} else if (rulesValues?.trigger === RecurringTransactionTriggerEnum.Interval) {
const GMT = getTimezoneConfig(TimezoneEnum.TzUtc).name
const gmtDateRef = DateTime.now().setZone(GMT).toISO() || ''
const customerZone = getTimezoneConfig(customerTimezone).name
Expand Down
20 changes: 10 additions & 10 deletions src/generated/graphql.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -1153,8 +1153,8 @@ export type CreatePlanInput = {

export type CreateRecurringTransactionRuleInput = {
interval?: InputMaybe<RecurringTransactionIntervalEnum>;
ruleType: RecurringTransactionRuleTypeEnum;
thresholdCredits?: InputMaybe<Scalars['String']['input']>;
trigger: RecurringTransactionTriggerEnum;
};

/** Create Subscription input arguments */
Expand Down Expand Up @@ -3883,11 +3883,11 @@ export type RecurringTransactionRule = {
interval?: Maybe<RecurringTransactionIntervalEnum>;
lagoId: Scalars['ID']['output'];
paidCredits: Scalars['String']['output'];
ruleType: RecurringTransactionRuleTypeEnum;
thresholdCredits?: Maybe<Scalars['String']['output']>;
trigger: RecurringTransactionTriggerEnum;
};

export enum RecurringTransactionRuleTypeEnum {
export enum RecurringTransactionTriggerEnum {
Interval = 'interval',
Threshold = 'threshold'
}
Expand Down Expand Up @@ -4620,8 +4620,8 @@ export type UpdateRecurringTransactionRuleInput = {
interval?: InputMaybe<RecurringTransactionIntervalEnum>;
lagoId?: InputMaybe<Scalars['ID']['input']>;
paidCredits?: InputMaybe<Scalars['String']['input']>;
ruleType?: InputMaybe<RecurringTransactionRuleTypeEnum>;
thresholdCredits?: InputMaybe<Scalars['String']['input']>;
trigger?: InputMaybe<RecurringTransactionTriggerEnum>;
};

/** Update input arguments */
Expand Down Expand Up @@ -5725,7 +5725,7 @@ export type DeleteTaxMutation = { __typename?: 'Mutation', destroyTax?: { __type

export type TaxItemFragment = { __typename?: 'Tax', id: string, code: string, name: string, rate: number, autoGenerated: boolean, customersCount: number };

export type CustomerWalletFragment = { __typename?: 'Wallet', id: string, currency: CurrencyEnum, rateAmount: number, expirationAt?: any | null, name?: string | null, balanceCents: any, consumedAmountCents: any, consumedCredits: number, createdAt: any, creditsBalance: number, lastBalanceSyncAt?: any | null, lastConsumedCreditAt?: any | null, status: WalletStatusEnum, terminatedAt?: any | null, ongoingBalanceCents: any, creditsOngoingBalance: number, ongoingUsageBalanceCents: any, creditsOngoingUsageBalance: number, recurringTransactionRules?: Array<{ __typename?: 'RecurringTransactionRule', lagoId: string, ruleType: RecurringTransactionRuleTypeEnum, interval?: RecurringTransactionIntervalEnum | null, thresholdCredits?: string | null, paidCredits: string, grantedCredits: string }> | null };
export type CustomerWalletFragment = { __typename?: 'Wallet', id: string, currency: CurrencyEnum, rateAmount: number, expirationAt?: any | null, name?: string | null, balanceCents: any, consumedAmountCents: any, consumedCredits: number, createdAt: any, creditsBalance: number, lastBalanceSyncAt?: any | null, lastConsumedCreditAt?: any | null, status: WalletStatusEnum, terminatedAt?: any | null, ongoingBalanceCents: any, creditsOngoingBalance: number, ongoingUsageBalanceCents: any, creditsOngoingUsageBalance: number, recurringTransactionRules?: Array<{ __typename?: 'RecurringTransactionRule', lagoId: string, trigger: RecurringTransactionTriggerEnum, interval?: RecurringTransactionIntervalEnum | null, thresholdCredits?: string | null, paidCredits: string, grantedCredits: string }> | null };

export type GetCustomerWalletListQueryVariables = Exact<{
customerId: Scalars['ID']['input'];
Expand All @@ -5734,7 +5734,7 @@ export type GetCustomerWalletListQueryVariables = Exact<{
}>;


export type GetCustomerWalletListQuery = { __typename?: 'Query', wallets: { __typename?: 'WalletCollection', metadata: { __typename?: 'CollectionMetadata', currentPage: number, totalPages: number }, collection: Array<{ __typename?: 'Wallet', id: string, currency: CurrencyEnum, rateAmount: number, expirationAt?: any | null, name?: string | null, balanceCents: any, consumedAmountCents: any, consumedCredits: number, createdAt: any, creditsBalance: number, lastBalanceSyncAt?: any | null, lastConsumedCreditAt?: any | null, status: WalletStatusEnum, terminatedAt?: any | null, ongoingBalanceCents: any, creditsOngoingBalance: number, ongoingUsageBalanceCents: any, creditsOngoingUsageBalance: number, recurringTransactionRules?: Array<{ __typename?: 'RecurringTransactionRule', lagoId: string, ruleType: RecurringTransactionRuleTypeEnum, interval?: RecurringTransactionIntervalEnum | null, thresholdCredits?: string | null, paidCredits: string, grantedCredits: string }> | null }> } };
export type GetCustomerWalletListQuery = { __typename?: 'Query', wallets: { __typename?: 'WalletCollection', metadata: { __typename?: 'CollectionMetadata', currentPage: number, totalPages: number }, collection: Array<{ __typename?: 'Wallet', id: string, currency: CurrencyEnum, rateAmount: number, expirationAt?: any | null, name?: string | null, balanceCents: any, consumedAmountCents: any, consumedCredits: number, createdAt: any, creditsBalance: number, lastBalanceSyncAt?: any | null, lastConsumedCreditAt?: any | null, status: WalletStatusEnum, terminatedAt?: any | null, ongoingBalanceCents: any, creditsOngoingBalance: number, ongoingUsageBalanceCents: any, creditsOngoingUsageBalance: number, recurringTransactionRules?: Array<{ __typename?: 'RecurringTransactionRule', lagoId: string, trigger: RecurringTransactionTriggerEnum, interval?: RecurringTransactionIntervalEnum | null, thresholdCredits?: string | null, paidCredits: string, grantedCredits: string }> | null }> } };

export type TerminateCustomerWalletMutationVariables = Exact<{
input: TerminateCustomerWalletInput;
Expand Down Expand Up @@ -6224,7 +6224,7 @@ export type GetSubscriptionForDetailsQueryVariables = Exact<{

export type GetSubscriptionForDetailsQuery = { __typename?: 'Query', subscription?: { __typename?: 'Subscription', id: string, name?: string | null, status?: StatusTypeEnum | null, externalId: string, plan: { __typename?: 'Plan', id: string, name: string, code: string, parent?: { __typename?: 'Plan', id: string, name: string, code: string } | null }, customer: { __typename?: 'Customer', id: string } } | null };

export type WalletForUpdateFragment = { __typename?: 'Wallet', id: string, expirationAt?: any | null, name?: string | null, rateAmount: number, recurringTransactionRules?: Array<{ __typename?: 'RecurringTransactionRule', lagoId: string, ruleType: RecurringTransactionRuleTypeEnum, interval?: RecurringTransactionIntervalEnum | null, thresholdCredits?: string | null, paidCredits: string, grantedCredits: string }> | null };
export type WalletForUpdateFragment = { __typename?: 'Wallet', id: string, expirationAt?: any | null, name?: string | null, rateAmount: number, recurringTransactionRules?: Array<{ __typename?: 'RecurringTransactionRule', lagoId: string, trigger: RecurringTransactionTriggerEnum, interval?: RecurringTransactionIntervalEnum | null, thresholdCredits?: string | null, paidCredits: string, grantedCredits: string }> | null };

export type GetCustomerInfosForWalletFormQueryVariables = Exact<{
id: Scalars['ID']['input'];
Expand All @@ -6238,7 +6238,7 @@ export type GetWalletInfosForWalletFormQueryVariables = Exact<{
}>;


export type GetWalletInfosForWalletFormQuery = { __typename?: 'Query', wallet?: { __typename?: 'Wallet', id: string, expirationAt?: any | null, name?: string | null, rateAmount: number, recurringTransactionRules?: Array<{ __typename?: 'RecurringTransactionRule', lagoId: string, ruleType: RecurringTransactionRuleTypeEnum, interval?: RecurringTransactionIntervalEnum | null, thresholdCredits?: string | null, paidCredits: string, grantedCredits: string }> | null } | null };
export type GetWalletInfosForWalletFormQuery = { __typename?: 'Query', wallet?: { __typename?: 'Wallet', id: string, expirationAt?: any | null, name?: string | null, rateAmount: number, recurringTransactionRules?: Array<{ __typename?: 'RecurringTransactionRule', lagoId: string, trigger: RecurringTransactionTriggerEnum, interval?: RecurringTransactionIntervalEnum | null, thresholdCredits?: string | null, paidCredits: string, grantedCredits: string }> | null } | null };

export type CreateCustomerWalletMutationVariables = Exact<{
input: CreateCustomerWalletInput;
Expand All @@ -6252,7 +6252,7 @@ export type UpdateCustomerWalletMutationVariables = Exact<{
}>;


export type UpdateCustomerWalletMutation = { __typename?: 'Mutation', updateCustomerWallet?: { __typename?: 'Wallet', id: string, expirationAt?: any | null, name?: string | null, rateAmount: number, recurringTransactionRules?: Array<{ __typename?: 'RecurringTransactionRule', lagoId: string, ruleType: RecurringTransactionRuleTypeEnum, interval?: RecurringTransactionIntervalEnum | null, thresholdCredits?: string | null, paidCredits: string, grantedCredits: string }> | null } | null };
export type UpdateCustomerWalletMutation = { __typename?: 'Mutation', updateCustomerWallet?: { __typename?: 'Wallet', id: string, expirationAt?: any | null, name?: string | null, rateAmount: number, recurringTransactionRules?: Array<{ __typename?: 'RecurringTransactionRule', lagoId: string, trigger: RecurringTransactionTriggerEnum, interval?: RecurringTransactionIntervalEnum | null, thresholdCredits?: string | null, paidCredits: string, grantedCredits: string }> | null } | null };

export type CreatePasswordResetMutationVariables = Exact<{
input: CreatePasswordResetInput;
Expand Down Expand Up @@ -7173,7 +7173,7 @@ export const WalletForUpdateFragmentDoc = gql`
rateAmount
recurringTransactionRules {
lagoId
ruleType
trigger
interval
thresholdCredits
paidCredits
Expand Down
50 changes: 25 additions & 25 deletions src/pages/WalletForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ import {
GetWalletInfosForWalletFormQuery,
LagoApiError,
RecurringTransactionIntervalEnum,
RecurringTransactionRuleTypeEnum,
RecurringTransactionTriggerEnum,
UpdateCustomerWalletInput,
UpdateRecurringTransactionRuleInput,
useCreateCustomerWalletMutation,
Expand All @@ -59,7 +59,7 @@ const DEFAULT_RULES = {
interval: undefined,
lagoId: undefined,
paidCredits: undefined,
ruleType: RecurringTransactionRuleTypeEnum.Threshold,
trigger: RecurringTransactionTriggerEnum.Threshold,
thresholdCredits: undefined,
}

Expand All @@ -71,7 +71,7 @@ gql`
rateAmount
recurringTransactionRules {
lagoId
ruleType
trigger
interval
thresholdCredits
paidCredits
Expand Down Expand Up @@ -116,7 +116,7 @@ gql`
function hasWalletRecurringTopUpEnabled(
wallet: GetWalletInfosForWalletFormQuery['wallet'],
): boolean {
return !!wallet?.recurringTransactionRules?.[0]?.ruleType
return !!wallet?.recurringTransactionRules?.[0]?.trigger
}

const WalletForm = () => {
Expand Down Expand Up @@ -265,13 +265,13 @@ const WalletForm = () => {
recurringTransactionRules: array()
.of(
object().shape({
ruleType: string().required(''),
trigger: string().required(''),
interval: string()
.test({
test: function (interval) {
const { ruleType } = this?.parent
const { trigger } = this?.parent

if (!!ruleType && ruleType !== RecurringTransactionRuleTypeEnum.Interval) {
if (!!trigger && trigger !== RecurringTransactionTriggerEnum.Interval) {
return true
}
return !!interval
Expand All @@ -281,9 +281,9 @@ const WalletForm = () => {
thresholdCredits: string()
.test({
test: function (thresholdCredits) {
const { ruleType } = this?.parent
const { trigger } = this?.parent

if (!!ruleType && ruleType !== RecurringTransactionRuleTypeEnum.Threshold) {
if (!!trigger && trigger !== RecurringTransactionTriggerEnum.Threshold) {
return true
}
return !!thresholdCredits
Expand Down Expand Up @@ -327,27 +327,27 @@ const WalletForm = () => {
const {
lagoId,
interval,
ruleType,
trigger,
thresholdCredits,
paidCredits: rulePaidCredit,
grantedCredits: ruleGrantedCredit,
} = rule

if (formType === FORM_TYPE_ENUM.creation) {
return {
ruleType: ruleType as RecurringTransactionRuleTypeEnum,
interval: ruleType === RecurringTransactionRuleTypeEnum.Interval ? interval : null,
trigger: trigger as RecurringTransactionTriggerEnum,
interval: trigger === RecurringTransactionTriggerEnum.Interval ? interval : null,
thresholdCredits:
ruleType === RecurringTransactionRuleTypeEnum.Threshold ? thresholdCredits : null,
trigger === RecurringTransactionTriggerEnum.Threshold ? thresholdCredits : null,
}
}

return {
lagoId,
ruleType: ruleType as RecurringTransactionRuleTypeEnum,
interval: ruleType === RecurringTransactionRuleTypeEnum.Interval ? interval : null,
trigger: trigger as RecurringTransactionTriggerEnum,
interval: trigger === RecurringTransactionTriggerEnum.Interval ? interval : null,
thresholdCredits:
ruleType === RecurringTransactionRuleTypeEnum.Threshold ? thresholdCredits : null,
trigger === RecurringTransactionTriggerEnum.Threshold ? thresholdCredits : null,
paidCredits: rulePaidCredit === '' ? '0' : String(rulePaidCredit),
grantedCredits: ruleGrantedCredit === '' ? '0' : String(ruleGrantedCredit),
}
Expand Down Expand Up @@ -394,9 +394,9 @@ const WalletForm = () => {

const canDisplayEditionAlert =
(!!recurringTransactionRules?.paidCredits || !!recurringTransactionRules?.grantedCredits) &&
((recurringTransactionRules?.ruleType === RecurringTransactionRuleTypeEnum.Interval &&
((recurringTransactionRules?.trigger === RecurringTransactionTriggerEnum.Interval &&
!!recurringTransactionRules?.interval) ||
recurringTransactionRules?.ruleType === RecurringTransactionRuleTypeEnum.Threshold)
recurringTransactionRules?.trigger === RecurringTransactionTriggerEnum.Threshold)

return (
<>
Expand Down Expand Up @@ -720,22 +720,22 @@ const WalletForm = () => {
<ComboBoxField
disableClearable
label={translate('text_6560809c38fb9de88d8a52fb')}
name="recurringTransactionRules.0.ruleType"
name="recurringTransactionRules.0.trigger"
data={[
{
label: translate('text_65201b8216455901fe273dc1'),
value: RecurringTransactionRuleTypeEnum.Interval,
value: RecurringTransactionTriggerEnum.Interval,
},
{
label: translate('text_6560809c38fb9de88d8a5315'),
value: RecurringTransactionRuleTypeEnum.Threshold,
value: RecurringTransactionTriggerEnum.Threshold,
},
]}
formikProps={formikProps}
/>

{recurringTransactionRules?.ruleType ===
RecurringTransactionRuleTypeEnum.Interval && (
{recurringTransactionRules?.trigger ===
RecurringTransactionTriggerEnum.Interval && (
<ComboBoxField
disableClearable
sortValues={false}
Expand Down Expand Up @@ -763,8 +763,8 @@ const WalletForm = () => {
formikProps={formikProps}
/>
)}
{recurringTransactionRules?.ruleType ===
RecurringTransactionRuleTypeEnum.Threshold && (
{recurringTransactionRules?.trigger ===
RecurringTransactionTriggerEnum.Threshold && (
<AmountInputField
name="recurringTransactionRules.0.thresholdCredits"
currency={formikProps.values.currency}
Expand Down

0 comments on commit b664d8a

Please sign in to comment.