Skip to content

Commit 4d7648e

Browse files
committed
MP-82 fix for trait create
1 parent b3278c0 commit 4d7648e

File tree

6 files changed

+37
-6
lines changed

6 files changed

+37
-6
lines changed

src/apps/accounts/src/settings/tabs/tools/service-provider/ServiceProvider.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { bind, isEmpty, reject, trim } from 'lodash'
33
import { toast } from 'react-toastify'
44
import classNames from 'classnames'
55

6-
import { updateMemberTraitsAsync, UserProfile, UserTrait } from '~/libs/core'
6+
import { createMemberTraitsAsync, updateMemberTraitsAsync, UserProfile, UserTrait } from '~/libs/core'
77
import { Button, Collapsible, ConfirmModal, IconOutline, InputSelect, InputText } from '~/libs/ui'
88
import {
99
FinancialInstitutionIcon,
@@ -22,6 +22,11 @@ interface ServiceProviderProps {
2222
profile: UserProfile
2323
}
2424

25+
const methodsMap: { [key: string]: any } = {
26+
create: createMemberTraitsAsync,
27+
update: updateMemberTraitsAsync,
28+
}
29+
2530
const ServiceProvider: FC<ServiceProviderProps> = (props: ServiceProviderProps) => {
2631
const formElRef: MutableRefObject<HTMLDivElement | any> = useRef()
2732

@@ -159,7 +164,7 @@ const ServiceProvider: FC<ServiceProviderProps> = (props: ServiceProviderProps)
159164
setIsEditMode(false)
160165
})
161166
} else {
162-
updateMemberTraitsAsync(
167+
methodsMap[!serviceProviderTypesData || !serviceProviderTypesData.length ? 'create' : 'update'](
163168
props.profile.handle,
164169
[{
165170
categoryName: 'Service Provider',

src/apps/accounts/src/settings/tabs/tools/software/Software.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { bind, isEmpty, reject, trim } from 'lodash'
33
import { toast } from 'react-toastify'
44
import classNames from 'classnames'
55

6-
import { updateMemberTraitsAsync, UserProfile, UserTrait } from '~/libs/core'
6+
import { createMemberTraitsAsync, updateMemberTraitsAsync, UserProfile, UserTrait } from '~/libs/core'
77
import { Button, Collapsible, ConfirmModal, IconOutline, InputSelect, InputText } from '~/libs/ui'
88
import { SettingSection, SoftwareIcon } from '~/apps/accounts/src/lib'
99

@@ -15,6 +15,11 @@ interface SoftwareProps {
1515
profile: UserProfile
1616
}
1717

18+
const methodsMap: { [key: string]: any } = {
19+
create: createMemberTraitsAsync,
20+
update: updateMemberTraitsAsync,
21+
}
22+
1823
const Software: FC<SoftwareProps> = (props: SoftwareProps) => {
1924
const formElRef: MutableRefObject<HTMLDivElement | any> = useRef()
2025

@@ -148,7 +153,7 @@ const Software: FC<SoftwareProps> = (props: SoftwareProps) => {
148153
setIsEditMode(false)
149154
})
150155
} else {
151-
updateMemberTraitsAsync(
156+
methodsMap[!softwareTypesData || !softwareTypesData.length ? 'create' : 'update'](
152157
props.profile.handle,
153158
[{
154159
categoryName: 'Software',

src/apps/accounts/src/settings/tabs/tools/subscriptions/Subscriptions.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { bind, isEmpty, reject, trim } from 'lodash'
33
import { toast } from 'react-toastify'
44
import classNames from 'classnames'
55

6-
import { updateMemberTraitsAsync, UserProfile, UserTrait } from '~/libs/core'
6+
import { createMemberTraitsAsync, updateMemberTraitsAsync, UserProfile, UserTrait } from '~/libs/core'
77
import { Button, Collapsible, ConfirmModal, IconOutline, InputText } from '~/libs/ui'
88
import { SettingSection, SubscriptionsIcon } from '~/apps/accounts/src/lib'
99

@@ -14,6 +14,11 @@ interface SubscriptionsProps {
1414
profile: UserProfile
1515
}
1616

17+
const methodsMap: { [key: string]: any } = {
18+
create: createMemberTraitsAsync,
19+
update: updateMemberTraitsAsync,
20+
}
21+
1722
const Subscriptions: FC<SubscriptionsProps> = (props: SubscriptionsProps) => {
1823
const formElRef: MutableRefObject<HTMLDivElement | any> = useRef()
1924

@@ -133,7 +138,7 @@ const Subscriptions: FC<SubscriptionsProps> = (props: SubscriptionsProps) => {
133138
setIsEditMode(false)
134139
})
135140
} else {
136-
updateMemberTraitsAsync(
141+
methodsMap[!subscriptionsTypesData || !subscriptionsTypesData.length ? 'create' : 'update'](
137142
props.profile.handle,
138143
[{
139144
categoryName: 'Subscription',

src/libs/core/lib/profile/profile-functions/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ export {
1111
updateMemberMFAStatusAsync,
1212
updateMemberPasswordAsync,
1313
updateMemberTraitsAsync,
14+
createMemberTraitsAsync,
1415
} from './profile.functions'
1516
export * from './profile-store'
1617
export * from './rating.functions'

src/libs/core/lib/profile/profile-functions/profile-store/profile-xhr.store.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,3 +85,10 @@ export async function updateMemberTraits(
8585
): Promise<UserTraits[]> {
8686
return xhrPutAsync<UserTraits[], UserTraits[]>(`${profileUrl(handle)}/traits`, traits)
8787
}
88+
89+
export async function createMemberTraits(
90+
handle: string,
91+
traits: UserTraits[],
92+
): Promise<UserTraits[]> {
93+
return xhrPostAsync<UserTraits[], UserTraits[]>(`${profileUrl(handle)}/traits`, traits)
94+
}

src/libs/core/lib/profile/profile-functions/profile.functions.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import { UserVerify } from '../user-verify.model'
1313
import { profileFactoryCreate } from './profile-factory'
1414
import { getMemberStats, getVerification, profileStoreGet, profileStorePatchName } from './profile-store'
1515
import {
16+
createMemberTraits,
1617
getCountryLookup,
1718
updateMemberEmailPreferences,
1819
updateMemberMFA,
@@ -108,3 +109,10 @@ export async function updateMemberTraitsAsync(
108109
): Promise<UserTraits[]> {
109110
return updateMemberTraits(handle, traits)
110111
}
112+
113+
export async function createMemberTraitsAsync(
114+
handle: string,
115+
traits: UserTraits[],
116+
): Promise<UserTraits[]> {
117+
return createMemberTraits(handle, traits)
118+
}

0 commit comments

Comments
 (0)