-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathcustomers.py
More file actions
186 lines (172 loc) · 7.75 KB
/
customers.py
File metadata and controls
186 lines (172 loc) · 7.75 KB
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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
from typing import Optional, Any, List, Dict, Union
from ..client import SeamHttpClient
from .models import AbstractCustomers, MagicLink
class Customers(AbstractCustomers):
def __init__(self, client: SeamHttpClient, defaults: Dict[str, Any]):
self.client = client
self.defaults = defaults
def create_portal(
self,
*,
customer_resources_filters: Optional[List[Dict[str, Any]]] = None,
customization_profile_id: Optional[str] = None,
exclude_locale_picker: Optional[bool] = None,
features: Optional[Dict[str, Any]] = None,
is_embedded: Optional[bool] = None,
landing_page: Optional[Dict[str, Any]] = None,
locale: Optional[str] = None,
navigation_mode: Optional[str] = None,
customer_data: Optional[Dict[str, Any]] = None
) -> MagicLink:
json_payload = {}
if customer_resources_filters is not None:
json_payload["customer_resources_filters"] = customer_resources_filters
if customization_profile_id is not None:
json_payload["customization_profile_id"] = customization_profile_id
if exclude_locale_picker is not None:
json_payload["exclude_locale_picker"] = exclude_locale_picker
if features is not None:
json_payload["features"] = features
if is_embedded is not None:
json_payload["is_embedded"] = is_embedded
if landing_page is not None:
json_payload["landing_page"] = landing_page
if locale is not None:
json_payload["locale"] = locale
if navigation_mode is not None:
json_payload["navigation_mode"] = navigation_mode
if customer_data is not None:
json_payload["customer_data"] = customer_data
res = self.client.post("/customers/create_portal", json=json_payload)
return MagicLink.from_dict(res["magic_link"])
def delete_data(
self,
*,
access_grant_keys: Optional[List[str]] = None,
booking_keys: Optional[List[str]] = None,
building_keys: Optional[List[str]] = None,
common_area_keys: Optional[List[str]] = None,
customer_keys: Optional[List[str]] = None,
facility_keys: Optional[List[str]] = None,
guest_keys: Optional[List[str]] = None,
listing_keys: Optional[List[str]] = None,
property_keys: Optional[List[str]] = None,
property_listing_keys: Optional[List[str]] = None,
reservation_keys: Optional[List[str]] = None,
resident_keys: Optional[List[str]] = None,
room_keys: Optional[List[str]] = None,
space_keys: Optional[List[str]] = None,
staff_member_keys: Optional[List[str]] = None,
tenant_keys: Optional[List[str]] = None,
unit_keys: Optional[List[str]] = None,
user_identity_keys: Optional[List[str]] = None,
user_keys: Optional[List[str]] = None
) -> None:
json_payload = {}
if access_grant_keys is not None:
json_payload["access_grant_keys"] = access_grant_keys
if booking_keys is not None:
json_payload["booking_keys"] = booking_keys
if building_keys is not None:
json_payload["building_keys"] = building_keys
if common_area_keys is not None:
json_payload["common_area_keys"] = common_area_keys
if customer_keys is not None:
json_payload["customer_keys"] = customer_keys
if facility_keys is not None:
json_payload["facility_keys"] = facility_keys
if guest_keys is not None:
json_payload["guest_keys"] = guest_keys
if listing_keys is not None:
json_payload["listing_keys"] = listing_keys
if property_keys is not None:
json_payload["property_keys"] = property_keys
if property_listing_keys is not None:
json_payload["property_listing_keys"] = property_listing_keys
if reservation_keys is not None:
json_payload["reservation_keys"] = reservation_keys
if resident_keys is not None:
json_payload["resident_keys"] = resident_keys
if room_keys is not None:
json_payload["room_keys"] = room_keys
if space_keys is not None:
json_payload["space_keys"] = space_keys
if staff_member_keys is not None:
json_payload["staff_member_keys"] = staff_member_keys
if tenant_keys is not None:
json_payload["tenant_keys"] = tenant_keys
if unit_keys is not None:
json_payload["unit_keys"] = unit_keys
if user_identity_keys is not None:
json_payload["user_identity_keys"] = user_identity_keys
if user_keys is not None:
json_payload["user_keys"] = user_keys
self.client.post("/customers/delete_data", json=json_payload)
return None
def push_data(
self,
*,
customer_key: str,
access_grants: Optional[List[Dict[str, Any]]] = None,
bookings: Optional[List[Dict[str, Any]]] = None,
buildings: Optional[List[Dict[str, Any]]] = None,
common_areas: Optional[List[Dict[str, Any]]] = None,
facilities: Optional[List[Dict[str, Any]]] = None,
guests: Optional[List[Dict[str, Any]]] = None,
listings: Optional[List[Dict[str, Any]]] = None,
properties: Optional[List[Dict[str, Any]]] = None,
property_listings: Optional[List[Dict[str, Any]]] = None,
reservations: Optional[List[Dict[str, Any]]] = None,
residents: Optional[List[Dict[str, Any]]] = None,
rooms: Optional[List[Dict[str, Any]]] = None,
sites: Optional[List[Dict[str, Any]]] = None,
spaces: Optional[List[Dict[str, Any]]] = None,
staff_members: Optional[List[Dict[str, Any]]] = None,
tenants: Optional[List[Dict[str, Any]]] = None,
units: Optional[List[Dict[str, Any]]] = None,
user_identities: Optional[List[Dict[str, Any]]] = None,
users: Optional[List[Dict[str, Any]]] = None
) -> None:
json_payload = {}
if customer_key is not None:
json_payload["customer_key"] = customer_key
if access_grants is not None:
json_payload["access_grants"] = access_grants
if bookings is not None:
json_payload["bookings"] = bookings
if buildings is not None:
json_payload["buildings"] = buildings
if common_areas is not None:
json_payload["common_areas"] = common_areas
if facilities is not None:
json_payload["facilities"] = facilities
if guests is not None:
json_payload["guests"] = guests
if listings is not None:
json_payload["listings"] = listings
if properties is not None:
json_payload["properties"] = properties
if property_listings is not None:
json_payload["property_listings"] = property_listings
if reservations is not None:
json_payload["reservations"] = reservations
if residents is not None:
json_payload["residents"] = residents
if rooms is not None:
json_payload["rooms"] = rooms
if sites is not None:
json_payload["sites"] = sites
if spaces is not None:
json_payload["spaces"] = spaces
if staff_members is not None:
json_payload["staff_members"] = staff_members
if tenants is not None:
json_payload["tenants"] = tenants
if units is not None:
json_payload["units"] = units
if user_identities is not None:
json_payload["user_identities"] = user_identities
if users is not None:
json_payload["users"] = users
self.client.post("/customers/push_data", json=json_payload)
return None