Skip to content

Commit

Permalink
feat(Deposit Addresses): set up share deposit addresses link
Browse files Browse the repository at this point in the history
  • Loading branch information
plondon committed Jun 24, 2019
1 parent ccb7874 commit ac1c93d
Show file tree
Hide file tree
Showing 6 changed files with 62 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,8 @@ export const LINK_ACCOUNT = '@DATA.PROFILE.LINK_ACCOUNT'
export const LINK_ACCOUNT_LOADING = '@DATA.PROFILE.LINK_ACCOUNT_LOADING'
export const LINK_ACCOUNT_SUCCESS = '@DATA.PROFILE.LINK_ACCOUNT_SUCCESS'
export const LINK_ACCOUNT_FAILURE = '@DATA.PROFILE.LINK_ACCOUNT_FAILURE'

export const SHARE_ADDRESSES = '@DATA.PROFILE.SHARE_ADDRESSES'
export const SHARE_ADDRESSES_LOADING = '@DATA.PROFILE.SHARE_ADDRESSES_LOADING'
export const SHARE_ADDRESSES_SUCCESS = '@DATA.PROFILE.SHARE_ADDRESSES_SUCCESS'
export const SHARE_ADDRESSES_FAILURE = '@DATA.PROFILE.SHARE_ADDRESSES_FAILURE'
Original file line number Diff line number Diff line change
Expand Up @@ -68,3 +68,19 @@ export const linkAccountFailure = e => ({
type: AT.LINK_ACCOUNT_FAILURE,
payload: { e }
})

export const shareAddresses = linkId => ({
type: AT.SHARE_ADDRESSES,
payload: { linkId }
})
export const shareAddressesLoading = () => ({
type: AT.SHARE_ADDRESSES_LOADING
})
export const shareAddressesSuccess = data => ({
type: AT.SHARE_ADDRESSES_SUCCESS,
payload: { data }
})
export const shareAddressesFailure = e => ({
type: AT.SHARE_ADDRESSES_FAILURE,
payload: { e }
})
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ const INITIAL_STATE = {
userData: Remote.NotAsked,
apiToken: Remote.NotAsked,
campaign: {},
linkAccountStatus: Remote.NotAsked
linkAccountStatus: Remote.NotAsked,
shareAddresses: Remote.NotAsked
}

export default (state = INITIAL_STATE, action) => {
Expand Down Expand Up @@ -47,6 +48,12 @@ export default (state = INITIAL_STATE, action) => {
return assoc('linkAccountStatus', Remote.Loading, state)
case AT.LINK_ACCOUNT_FAILURE:
return assoc('linkAccountStatus', Remote.Failure(payload.e), state)
case AT.SHARE_ADDRESSES_SUCCESS:
return assoc('shareAddresses', Remote.Success(payload.data), state)
case AT.SHARE_ADDRESSES_LOADING:
return assoc('shareAddresses', Remote.Loading, state)
case AT.SHARE_ADDRESSES_FAILURE:
return assoc('shareAddresses', Remote.Failure(payload.e), state)
case AT.SET_CAMPAIGN:
return assoc('campaign', payload.campaign, state)
default:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,13 @@ import * as AT from './actionTypes'
import sagas from './sagas'

export default ({ api, coreSagas }) => {
const { signIn, clearSession, fetchUser, linkAccount } = sagas({
const {
clearSession,
fetchUser,
linkAccount,
shareAddresses,
signIn
} = sagas({
api,
coreSagas
})
Expand All @@ -13,5 +19,6 @@ export default ({ api, coreSagas }) => {
yield takeLatest(AT.CLEAR_SESSION, clearSession)
yield takeLatest(AT.FETCH_USER, fetchUser)
yield takeLatest(AT.LINK_ACCOUNT, linkAccount)
yield takeLatest(AT.SHARE_ADDRESSES, shareAddresses)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -292,13 +292,25 @@ export default ({ api, coreSagas }) => {
}
}

const shareAddresses = function * () {
try {
yield put(A.shareAddressesLoading())
const addresses = { BTC: '16pTqy21CEFSvJGJF7CvFUFmgPeXVRDCAk' }
const data = yield call(api.shareDepositAddresses, addresses)
yield put(A.shareAddressesSuccess(data))
} catch (e) {
yield put(A.shareAddressesFailure(e))
}
}

const linkAccount = function * ({ payload }) {
try {
const { linkId } = payload
yield put(A.linkAccountLoading())
const isUserStateNone = (yield select(S.isUserStateNone)).getOrElse(false)
if (isUserStateNone) yield call(createUser)
const data = yield call(api.linkAccount, linkId)
yield put(A.shareAddresses())
yield put(A.linkAccountSuccess(data))
} catch (e) {
yield put(A.linkAccountFailure(e))
Expand All @@ -319,6 +331,7 @@ export default ({ api, coreSagas }) => {
renewSession,
renewUser,
setSession,
shareAddresses,
signIn,
syncUserWithWallet,
updateUser,
Expand Down
12 changes: 12 additions & 0 deletions packages/blockchain-wallet-v4/src/network/api/profile/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,17 @@ export default ({
})
}

const shareDepositAddresses = addresses => {
return authorizedPut({
url: nabuUrl,
endPoint: '/users/deposit/addresses',
contentType: 'application/json',
data: {
addresses
}
})
}

const registerUserCampaign = (campaignName, campaignData, newUser = false) =>
authorizedPut({
url: nabuUrl,
Expand Down Expand Up @@ -134,6 +145,7 @@ export default ({
registerUserCampaign,
syncUserWithWallet,
updateUser,
shareDepositAddresses,
updateUserAddress
}
}

0 comments on commit ac1c93d

Please sign in to comment.