Skip to content

Commit c763e30

Browse files
ref: Flatten Amplitude context properties (#3687)
1 parent 5c7ed2b commit c763e30

File tree

5 files changed

+23
-49
lines changed

5 files changed

+23
-49
lines changed

src/services/events/amplitude/amplitude.test.tsx

+8-14
Original file line numberDiff line numberDiff line change
@@ -121,13 +121,10 @@ describe('AmplitudeEventTracker', () => {
121121
it('populates context as event properties', () => {
122122
const tracker = new AmplitudeEventTracker()
123123
tracker.setContext({
124-
owner: {
125-
id: 123,
126-
},
127-
repo: {
128-
id: 321,
129-
isPrivate: false,
130-
},
124+
ownerid: 123,
125+
repoid: 321,
126+
repoIsPrivate: false,
127+
path: '/:provider/:owner',
131128
})
132129

133130
tracker.track({
@@ -141,13 +138,10 @@ describe('AmplitudeEventTracker', () => {
141138
event_type: 'Button Clicked',
142139
event_properties: {
143140
buttonName: 'Configure Repo',
144-
owner: {
145-
id: 123,
146-
},
147-
repo: {
148-
id: 321,
149-
isPrivate: false,
150-
},
141+
ownerid: 123,
142+
repoid: 321,
143+
repoIsPrivate: false,
144+
path: '/:provider/:owner',
151145
},
152146
groups: {
153147
org: 123,

src/services/events/amplitude/amplitude.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,9 @@ export class AmplitudeEventTracker implements EventTracker {
4848
...this.context,
4949
},
5050
// This attaches the event to the owner's user group (org) as well
51-
groups: this.context.owner?.id
51+
groups: this.context.ownerid
5252
? {
53-
org: this.context.owner.id,
53+
org: this.context.ownerid,
5454
}
5555
: undefined,
5656
})

src/services/events/hooks.test.tsx

+4-13
Original file line numberDiff line numberDiff line change
@@ -129,10 +129,7 @@ describe('useEventContext', () => {
129129
await waitFor(() => {
130130
expect(mockedSetContext).toHaveBeenCalledWith({
131131
path: '/:provider/:owner',
132-
owner: {
133-
id: mockOwnerContext.owner.ownerid,
134-
},
135-
repo: undefined,
132+
ownerid: mockOwnerContext.owner.ownerid,
136133
})
137134
})
138135
})
@@ -148,13 +145,9 @@ describe('useEventContext', () => {
148145
await waitFor(() => {
149146
expect(mockedSetContext).toHaveBeenCalledWith({
150147
path: '/:provider/:owner/:repo',
151-
owner: {
152-
id: mockOwnerContext.owner.ownerid,
153-
},
154-
repo: {
155-
id: mockRepoContext.owner.repository.repoid,
156-
isPrivate: mockRepoContext.owner.repository.private,
157-
},
148+
ownerid: mockOwnerContext.owner.ownerid,
149+
repoid: mockRepoContext.owner.repository.repoid,
150+
repoIsPrivate: mockRepoContext.owner.repository.private,
158151
})
159152
})
160153
})
@@ -170,8 +163,6 @@ describe('useEventContext', () => {
170163
await waitFor(() => {
171164
expect(mockedSetContext).toHaveBeenCalledWith({
172165
path: '/:provider/:owner',
173-
owner: undefined,
174-
repo: undefined,
175166
})
176167
})
177168
})

src/services/events/hooks.tsx

+6-13
Original file line numberDiff line numberDiff line change
@@ -36,23 +36,16 @@ export function useEventContext() {
3636

3737
if (
3838
path !== context.current.path ||
39-
ownerData?.ownerid !== context.current.owner?.id ||
40-
repoData?.repoid !== context.current.repo?.id
39+
ownerData?.ownerid !== context.current.ownerid ||
40+
repoData?.repoid !== context.current.repoid
4141
) {
4242
// only update if this is a new owner or repo
4343
const newContext: EventContext = {
4444
path,
45-
owner: ownerData?.ownerid
46-
? {
47-
id: ownerData?.ownerid,
48-
}
49-
: undefined,
50-
repo: repoData?.repoid
51-
? {
52-
id: repoData.repoid,
53-
isPrivate: repoData.private === null ? undefined : repoData.private,
54-
}
55-
: undefined,
45+
ownerid: ownerData?.ownerid || undefined,
46+
repoid: repoData?.repoid || undefined,
47+
repoIsPrivate:
48+
typeof repoData?.private === 'boolean' ? repoData?.private : undefined,
5649
}
5750
eventTracker().setContext(newContext)
5851
context.current = newContext

src/services/events/types.ts

+3-7
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,9 @@ export type Identity = {
4949
// arise in the future.
5050
export type EventContext = {
5151
// owner the event is being performed ON, not BY.
52-
owner?: {
53-
id: number
54-
}
55-
repo?: {
56-
id: number
57-
isPrivate?: boolean
58-
}
52+
ownerid?: number
53+
repoid?: number
54+
repoIsPrivate?: boolean
5955
path?: string
6056
}
6157

0 commit comments

Comments
 (0)