-
Notifications
You must be signed in to change notification settings - Fork 10
/
types.ts
143 lines (133 loc) · 3.44 KB
/
types.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
import type { ServerResponse } from '../common/request'
import type { Properties, UserAlias } from '../common/types'
export * from './alias/types'
export * from './export/types'
export * from './external_ids/types'
/**
* Request body for user track.
*
* {@link https://www.braze.com/docs/api/endpoints/user_data/post_user_track/#request-body}
*/
export interface UsersTrackObject {
attributes?: UserAttributesObject[]
events?: EventObject[]
purchases?: PurchaseObject[]
}
/**
* Request body for user identify.
*
* {@link https://www.braze.com/docs/api/endpoints/user_data/post_user_identify/#request-body}
*/
export interface UsersIdentifyObject {
aliases_to_identify: {
external_id: string
user_alias: UserAlias
}[]
}
/**
* Request body for user merge.
*
* {@link https://www.braze.com/docs/api/endpoints/user_data/post_users_merge/#request-body}
*/
export interface UsersMergeObject {
merge_updates: {
identifier_to_merge: { external_id: string } | { user_alias: UserAlias }
identifier_to_keep: { external_id: string } | { user_alias: UserAlias }
}[]
}
/**
* Request body for user delete.
*
* {@link https://www.braze.com/docs/api/endpoints/user_data/post_user_delete/#request-body}
*/
export interface UsersDeleteObject {
external_ids?: string[]
user_aliases?: UserAlias[]
braze_ids?: string[]
}
/**
* Response body for user delete.
*
* {@link https://www.braze.com/docs/api/endpoints/user_data/post_user_delete/#request-body}
*/
export interface UsersDeleteResponse extends ServerResponse {
deleted: number
}
/**
* User attributes object specification.
*
* {@link https://www.braze.com/docs/api/objects_filters/user_attributes_object}
*/
interface UserAttributesObject extends UserProfileField {
external_id?: string
user_alias?: UserAlias
braze_id?: string
_update_existing_only?: boolean
push_token_import?: boolean
// eslint-disable-next-line @typescript-eslint/no-explicit-any
[custom_attribute: string]: any
}
/**
* Braze user profile fields.
*
* {@link https://www.braze.com/docs/api/objects_filters/user_attributes_object}
*/
interface UserProfileField {
country?: string
current_location?: {
longitude: number
latitude: number
}
date_of_first_session?: string
date_of_last_session?: string
dob?: string
email?: string
email_subscribe?: 'opted_in' | 'unsubscribed' | 'subscribed'
email_open_tracking_disabled?: boolean
email_click_tracking_disabled?: boolean
external_id?: string
facebook?: string
first_name?: string
gender?: 'M' | 'F' | 'O' | 'N' | 'P' | null
home_city?: string
language?: string
last_name?: string
marked_email_as_spam_at?: string
phone?: string
push_subscribe?: 'opted_in' | 'unsubscribed' | 'subscribed'
time_zone?: string
twitter?: string
}
/**
* Event object specification.
*
* {@link https://www.braze.com/docs/api/objects_filters/event_object/}
*/
interface EventObject {
external_id?: string
user_alias?: UserAlias
braze_id?: string
app_id?: string
name: string
time: string
properties?: Properties
_update_existing_only?: boolean
}
/**
* Purchase object specification.
*
* {@link https://www.braze.com/docs/api/objects_filters/purchase_object/}
*/
interface PurchaseObject {
external_id?: string
user_alias?: UserAlias
braze_id?: string
app_id?: string
product_id: string
currency: string
price: number
quantity?: number
time: string
properties?: Properties
_update_existing_only?: boolean
}