Skip to content

Commit

Permalink
fix(analytics): adding enum on cases
Browse files Browse the repository at this point in the history
  • Loading branch information
pedroapfilho committed Jun 3, 2021
1 parent 62b95a7 commit 2c4abda
Show file tree
Hide file tree
Showing 6 changed files with 92 additions and 70 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ export type SBShowModalOriginType =
| 'WelcomeModal'
| 'WithdrawModal'
| 'SwapNoHoldings'
| 'CurrencyList'

export enum SBCardStateEnum {
PENDING,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ export type ModalOriginType =
| 'WalletBalanceDropdown'
| 'WelcomeModal'
| 'WithdrawModal'
| 'CurrencyList'

export type ModalParamPropsType = {
[key: string]: any
Expand Down Expand Up @@ -132,8 +133,4 @@ interface UpdateModalOptions {
type: typeof AT.UPDATE_MODAL
}

export type ModalActionTypes =
| CloseAllModals
| CloseModal
| ShowModal
| UpdateModalOptions
export type ModalActionTypes = CloseAllModals | CloseModal | ShowModal | UpdateModalOptions
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ import {
AccountType,
AnalyticsKey,
AnalyticsType,
CoinType
CoinType,
OrderType
} from 'middleware/analyticsMiddleware/types'
import {
getNetworkFee,
Expand Down Expand Up @@ -84,7 +85,7 @@ const analyticsMiddleware = () => (store) => (next) => (action) => {
nabuId,
origin,
originalTimestamp: getOriginalTimestamp(),
type: 'BUY'
type: OrderType.BUY
})

analytics.push(AnalyticsKey.BUY_SELL_VIEWED, {
Expand All @@ -96,7 +97,7 @@ const analyticsMiddleware = () => (store) => (next) => (action) => {
referrer,
search,
title,
type: 'BUY',
type: OrderType.BUY,
url: href
})

Expand Down Expand Up @@ -302,12 +303,12 @@ const analyticsMiddleware = () => (store) => (next) => (action) => {
const state = store.getState()
const inputCurrency = state.form.initSwap.values.BASE.coin
const inputType =
state.form.initSwap.values.BASE.type === 'CUSTODIAL'
state.form.initSwap.values.BASE.type === 'CUSTODIAL' // TODO add SwapBaseCounterTypes to it
? AccountType.TRADING
: AccountType.USERKEY
const outputCurrency = state.form.initSwap.values.COUNTER.coin
const outputType =
state.form.initSwap.values.COUNTER.type === 'CUSTODIAL'
state.form.initSwap.values.COUNTER.type === 'CUSTODIAL' // TODO add SwapBaseCounterTypes to it
? AccountType.TRADING
: AccountType.USERKEY

Expand All @@ -330,13 +331,13 @@ const analyticsMiddleware = () => (store) => (next) => (action) => {
const inputAmount = Number(state.form.swapAmount.values.cryptoAmount)
const inputCurrency = state.form.initSwap.values.BASE.coin
const inputType =
state.form.initSwap.values.BASE.type === 'CUSTODIAL'
state.form.initSwap.values.BASE.type === 'CUSTODIAL' // TODO add SwapBaseCounterTypes to it
? AccountType.TRADING
: AccountType.USERKEY
const outputAmount = inputAmount * exchangeRate
const outputCurrency = state.form.initSwap.values.COUNTER.coin
const outputType =
state.form.initSwap.values.COUNTER.type === 'CUSTODIAL'
state.form.initSwap.values.COUNTER.type === 'CUSTODIAL' // TODO add SwapBaseCounterTypes to it
? AccountType.TRADING
: AccountType.USERKEY

Expand Down Expand Up @@ -365,12 +366,12 @@ const analyticsMiddleware = () => (store) => (next) => (action) => {
const state = store.getState()
const inputCurrency = state.form.initSwap.values.BASE.coin
const inputType =
state.form.initSwap.values.BASE.type === 'CUSTODIAL'
state.form.initSwap.values.BASE.type === 'CUSTODIAL' // TODO add SwapBaseCounterTypes to it
? AccountType.TRADING
: AccountType.USERKEY
const outputCurrency = state.form.initSwap.values.COUNTER.coin
const outputType =
state.form.initSwap.values.COUNTER.type === 'CUSTODIAL'
state.form.initSwap.values.COUNTER.type === 'CUSTODIAL' // TODO add SwapBaseCounterTypes to it
? AccountType.TRADING
: AccountType.USERKEY

Expand All @@ -391,12 +392,12 @@ const analyticsMiddleware = () => (store) => (next) => (action) => {
const state = store.getState()
const inputCurrency = state.form.initSwap.values.BASE.coin
const inputType =
state.form.initSwap.values.BASE.type === 'CUSTODIAL'
state.form.initSwap.values.BASE.type === 'CUSTODIAL' // TODO add SwapBaseCounterTypes to it
? AccountType.TRADING
: AccountType.USERKEY
const outputCurrency = state.form.initSwap.values.COUNTER.coin
const outputType =
state.form.initSwap.values.COUNTER.type === 'CUSTODIAL'
state.form.initSwap.values.COUNTER.type === 'CUSTODIAL' // TODO add SwapBaseCounterTypes to it
? AccountType.TRADING
: AccountType.USERKEY

Expand All @@ -415,7 +416,9 @@ const analyticsMiddleware = () => (store) => (next) => (action) => {
case AT.components.swap.CHANGE_BASE: {
const inputCurrency = action.payload.account.coin
const inputType =
action.payload.account.type === 'CUSTODIAL' ? AccountType.TRADING : AccountType.USERKEY
action.payload.account.type === 'CUSTODIAL' // TODO add SwapBaseCounterTypes to it
? AccountType.TRADING
: AccountType.USERKEY

analytics.push(AnalyticsKey.SWAP_FROM_SELECTED, {
analyticsType: AnalyticsType.EVENT,
Expand All @@ -430,7 +433,9 @@ const analyticsMiddleware = () => (store) => (next) => (action) => {
case AT.components.swap.CHANGE_COUNTER: {
const inputCurrency = action.payload.account.coin
const inputType =
action.payload.account.type === 'CUSTODIAL' ? AccountType.TRADING : AccountType.USERKEY
action.payload.account.type === 'CUSTODIAL' // TODO add SwapBaseCounterTypes to it
? AccountType.TRADING
: AccountType.USERKEY

analytics.push(AnalyticsKey.SWAP_RECEIVE_SELECTED, {
analyticsType: AnalyticsType.EVENT,
Expand All @@ -448,17 +453,17 @@ const analyticsMiddleware = () => (store) => (next) => (action) => {
const inputAmount = Number(state.form.swapAmount.values.cryptoAmount)
const inputCurrency = state.form.initSwap.values.BASE.coin
const inputType =
state.form.initSwap.values.BASE.type === 'CUSTODIAL'
state.form.initSwap.values.BASE.type === 'CUSTODIAL' // TODO add SwapBaseCounterTypes to it
? AccountType.TRADING
: AccountType.USERKEY
const outputAmount = inputAmount * exchangeRate
const outputCurrency = state.form.initSwap.values.COUNTER.coin
const outputType =
state.form.initSwap.values.COUNTER.type === 'CUSTODIAL'
state.form.initSwap.values.COUNTER.type === 'CUSTODIAL' // TODO add SwapBaseCounterTypes to it
? AccountType.TRADING
: AccountType.USERKEY
const networkFeeInputAmount =
state.form.initSwap.values.BASE.type === 'CUSTODIAL'
state.form.initSwap.values.BASE.type === 'CUSTODIAL' // TODO add SwapBaseCounterTypes to it
? 0
: Number(
convertBaseToStandard(
Expand All @@ -467,7 +472,7 @@ const analyticsMiddleware = () => (store) => (next) => (action) => {
)
)
const networkFeeOutputAmount =
state.form.initSwap.values.COUNTER.type === 'CUSTODIAL'
state.form.initSwap.values.COUNTER.type === 'CUSTODIAL' // TODO add SwapBaseCounterTypes to it
? 0
: state.components.swap.quote.getOrElse({})?.quote.networkFee || 0

Expand Down Expand Up @@ -495,7 +500,7 @@ const analyticsMiddleware = () => (store) => (next) => (action) => {
case AT.components.request.GET_NEXT_ADDRESS: {
const state = store.getState()
const accountType =
state.forms.requestCrypto.values.selectedAccount.type === 'CUSTODIAL'
state.forms.requestCrypto.values.selectedAccount.type === 'CUSTODIAL' // TODO add SwapBaseCounterTypes to it
? AccountType.TRADING
: AccountType.USERKEY
const currency = state.forms.requestCrypto.values.selectedAccount.coin
Expand All @@ -514,7 +519,7 @@ const analyticsMiddleware = () => (store) => (next) => (action) => {
case AT.components.request.SET_ADDRESS_COPIED: {
const state = store.getState()
const accountType =
state.forms.requestCrypto.values.selectedAccount.type === 'CUSTODIAL'
state.forms.requestCrypto.values.selectedAccount.type === 'CUSTODIAL' // TODO add SwapBaseCounterTypes to it
? AccountType.TRADING
: AccountType.USERKEY
const currency = state.forms.requestCrypto.values.selectedAccount.coin
Expand Down Expand Up @@ -543,7 +548,7 @@ const analyticsMiddleware = () => (store) => (next) => (action) => {
nabuId,
origin,
originalTimestamp: getOriginalTimestamp(),
type: 'BUY'
type: OrderType.BUY
})

analytics.push(AnalyticsKey.BUY_SELL_VIEWED, {
Expand All @@ -555,7 +560,7 @@ const analyticsMiddleware = () => (store) => (next) => (action) => {
referrer,
search,
title,
type: 'BUY',
type: OrderType.BUY,
url: href
})
break
Expand All @@ -573,7 +578,7 @@ const analyticsMiddleware = () => (store) => (next) => (action) => {
nabuId,
origin,
originalTimestamp: getOriginalTimestamp(),
type: 'SELL'
type: OrderType.SELL
})

analytics.push(AnalyticsKey.BUY_SELL_VIEWED, {
Expand All @@ -585,7 +590,7 @@ const analyticsMiddleware = () => (store) => (next) => (action) => {
referrer,
search,
title,
type: 'SELL',
type: OrderType.SELL,
url: href
})

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ enum AnalyticsType {
}

enum AccountType {
SAVINGS = 'SAVINGS',
TRADING = 'TRADING',
USERKEY = 'USERKEY'
}
Expand All @@ -46,6 +47,24 @@ enum CoinType {
FIAT = 'FIAT'
}

enum OrderType {
BUY = 'BUY',
SELL = 'SELL'
}

enum PaymentType {
BANK_ACCOUNT = 'BANK_ACCOUNT',
BANK_TRANSFER = 'BANK_TRANSFER',
FUNDS = 'FUNDS',
PAYMENT_CARD = 'PAYMENT_CARD'
}

enum FeeRateType {
CUSTOM = 'CUSTOM',
NORMAL = 'NORMAL',
PRIORITY = 'PRIORITY'
}

type BasePayload = {
analyticsType: AnalyticsType
id: string
Expand All @@ -63,7 +82,7 @@ type PageViewPayload = {

type AmountSwitchedPayload = BasePayload & {
product: 'SAVINGS' | 'SIMPLEBUY' | 'SWAP'
switch_to: 'CRYPTO' | 'FIAT'
switch_to: CoinType
}

type BuyAmountEnteredPayload = BasePayload & {
Expand All @@ -85,17 +104,17 @@ type BuyAmountMinClickedPayload = BasePayload & {
}

type BuyPaymentMethodSelectedPayload = BasePayload & {
payment_type: 'BANK_ACCOUNT' | 'BANK_TRANSFER' | 'FUNDS' | 'PAYMENT_CARD'
payment_type: PaymentType
}

type BuySellClickedPayload = BasePayload & {
origin: string
type: 'BUY' | 'SELL'
type: OrderType
}

type BuySellViewedPayload = BasePayload &
PageViewPayload & {
type: 'BUY' | 'SELL'
type: OrderType
}

type DashboardClickedPayload = BasePayload & {
Expand All @@ -109,31 +128,31 @@ type EmailVerificationClicked = BasePayload & {
}

type ReceiveCurrencySelectedPayload = BasePayload & {
account_type: 'SAVINGS' | 'TRADING' | 'USERKEY'
account_type: AccountType
currency: string
}

type ReceiveDetailsCopiedPayload = BasePayload & {
account_type: 'SAVINGS' | 'TRADING' | 'USERKEY'
account_type: AccountType
currency: string
}

type SendAmountMaxClickedPayload = BasePayload & {
currency: string
from_account_type: 'SAVINGS' | 'TRADING' | 'USERKEY'
to_account_type: 'SAVINGS' | 'TRADING' | 'USERKEY'
from_account_type: AccountType
to_account_type: AccountType
}

type SendFeeRateSelectedPayload = BasePayload & {
currency: string
fee_rate: 'CUSTOM' | 'NORMAL' | 'PRIORITY'
from_account_type: 'SAVINGS' | 'TRADING' | 'USERKEY'
to_account_type: 'SAVINGS' | 'TRADING' | 'USERKEY'
fee_rate: FeeRateType
from_account_type: AccountType
to_account_type: AccountType
}

type SendFromSelectedPayload = BasePayload & {
currency: string
from_account_type: 'SAVINGS' | 'TRADING' | 'USERKEY'
from_account_type: AccountType
}

type SendReceiveClickedPayload = BasePayload & {
Expand All @@ -147,9 +166,9 @@ type SendReceiveViewedPayload = BasePayload & {

type SendSubmittedPayload = BasePayload & {
currency: string
fee_rate: 'CUSTOM' | 'NORMAL' | 'PRIORITY'
from_account_type: 'SAVINGS' | 'TRADING' | 'USERKEY'
to_account_type: 'SAVINGS' | 'TRADING' | 'USERKEY'
fee_rate: FeeRateType
from_account_type: AccountType
to_account_type: AccountType
}

type SignedInPayload = BasePayload & {}
Expand All @@ -164,42 +183,42 @@ type SwapViewedPayload = BasePayload & PageViewPayload & {}

type SwapAccountsSelectedPayload = BasePayload & {
input_currency: string
input_type: 'TRADING' | 'USERKEY'
input_type: Omit<AccountType, AccountType.SAVINGS>
output_currency: string
output_type: 'TRADING' | 'USERKEY'
output_type: Omit<AccountType, AccountType.SAVINGS>
}

type SwapAmountEnteredPayload = BasePayload & {
input_amount: number
input_currency: string
input_type: 'TRADING' | 'USERKEY'
input_type: Omit<AccountType, AccountType.SAVINGS>
output_amount: number
output_currency: string
output_type: 'TRADING' | 'USERKEY'
output_type: Omit<AccountType, AccountType.SAVINGS>
}

type SwapAmountMaxClickedPayload = BasePayload & {
input_currency: string
input_type: 'TRADING' | 'USERKEY'
input_type: Omit<AccountType, AccountType.SAVINGS>
output_currency: string
output_type: 'TRADING' | 'USERKEY'
output_type: Omit<AccountType, AccountType.SAVINGS>
}

type SwapAmountMinClickedPayload = BasePayload & {
input_currency: string
input_type: 'TRADING' | 'USERKEY'
input_type: Omit<AccountType, AccountType.SAVINGS>
output_currency: string
output_type: 'TRADING' | 'USERKEY'
output_type: Omit<AccountType, AccountType.SAVINGS>
}

type SwapFromSelectedPayload = BasePayload & {
input_currency: string
input_type: 'TRADING' | 'USERKEY'
input_type: Omit<AccountType, AccountType.SAVINGS>
}

type SwapReceiveSelectedPayload = BasePayload & {
input_currency: string
input_type: 'TRADING' | 'USERKEY'
input_type: Omit<AccountType, AccountType.SAVINGS>
}

type SwapRequested = BasePayload & {
Expand Down Expand Up @@ -269,4 +288,4 @@ type PageNamesType = '/home'

export type { AnalyticsPayload, PageNamesType }

export { AccountType, AnalyticsKey, AnalyticsType, CoinType }
export { AccountType, AnalyticsKey, AnalyticsType, CoinType, FeeRateType, OrderType, PaymentType }

0 comments on commit 2c4abda

Please sign in to comment.