python-terminusgps 36.3.0__py3-none-any.whl → 36.4.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-terminusgps
3
- Version: 36.3.0
3
+ Version: 36.4.0
4
4
  Summary: Provides abstractions/utilities for working with Wialon API, Authorize.NET API, AWS API, and more.
5
5
  Project-URL: Documentation, https://docs.terminusgps.com
6
6
  Project-URL: Repository, https://github.com/terminusgps/python-terminusgps
@@ -7,7 +7,7 @@ terminusgps/authorizenet/utils.py,sha256=FrKqXWrplcgiET1rDTmUaqmN_ze7j93jWgfFeJR
7
7
  terminusgps/authorizenet/profiles/__init__.py,sha256=IG4XCEEYtHKqXOatlZlob6J3ukAgF7cFR-RXxOSMS1c,161
8
8
  terminusgps/authorizenet/profiles/addresses.py,sha256=5GudJStBa4P0Hd7G_hRFH2C-WpICAH_k3MT9YJkicKw,6305
9
9
  terminusgps/authorizenet/profiles/base.py,sha256=Pu1NGrvC5Ox2W1oZuVcPqUw3aUoSK191Evexw1U6_3k,3940
10
- terminusgps/authorizenet/profiles/customers.py,sha256=qd09bUD2TWOwrHYXpKax5iMQb5X0tSDje4oxTXNJAyM,11691
10
+ terminusgps/authorizenet/profiles/customers.py,sha256=mKPHSFoDqJqHL1CvTximNVRb1myRwQ9NvMkA2-iswOg,11701
11
11
  terminusgps/authorizenet/profiles/payments.py,sha256=nhudGuJ6RzmK0MrhDVuYL2BxvyzKNpliBIfIpFU5Y-4,11038
12
12
  terminusgps/authorizenet/profiles/subscriptions.py,sha256=m_jb9GqeD1tLmeqSnaGwJrzPcQOulEkF8K1wCaqKR24,7924
13
13
  terminusgps/authorizenet/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -41,7 +41,7 @@ terminusgps/wialon/session.py,sha256=BN8GBfYNIJcjvev9-qOam2Sbkf7EyCoQXTudRrmA3vc
41
41
  terminusgps/wialon/utils.py,sha256=SwpcxLPBLy0u3AT84G-Co4wxmhRrPFyW3jo_9O6ICvk,11008
42
42
  terminusgps/wialon/validators.py,sha256=j5vrtcfClAzRdRkWTvRRAmrne1t0R6cKkmYdE7fAkSs,4247
43
43
  terminusgps/wialon/items/__init__.py,sha256=3BVthghekMvhMQSzQgBMlD_phxmKSmp3Zvmo-z0O8Bs,211
44
- terminusgps/wialon/items/base.py,sha256=YpOPxghLYDZmWQZRb64CjwCq_0rTmm83cIYZm2oN5LY,9344
44
+ terminusgps/wialon/items/base.py,sha256=ru1IzdVJiXlwZA8TSB1UtxtS300uK8xY4yBOupeVSwU,10345
45
45
  terminusgps/wialon/items/resource.py,sha256=DDnyL_Y5P3DxiirUkQb9y4cokMXZVq3xnfn16Vx8sxk,16992
46
46
  terminusgps/wialon/items/retranslator.py,sha256=sVEWrp8q1I-tO_rMTCH7TeQDDbZryIq8d9KVnhYyhH0,3795
47
47
  terminusgps/wialon/items/route.py,sha256=amNPKZqgl8pEzKA_XJudnvBPzEsfHTmrC7uF15sZVI4,1216
@@ -52,7 +52,7 @@ terminusgps/wialon/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZ
52
52
  terminusgps/wialon/tests/test_items.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
53
  terminusgps/wialon/tests/test_session.py,sha256=9mBlYchMo9NeqRIZsmxYzrM1zBHorqu4ooxqSNppLpI,1336
54
54
  terminusgps/wialon/tests/test_utils.py,sha256=SK4PxJQGECFnzx_EQeRAQfsQ5_3FLaVcis2W9u_ibuI,1730
55
- python_terminusgps-36.3.0.dist-info/METADATA,sha256=Eh0fcycyihRRmz9QvYlgZX1Mm2LE4ntv9zkUhkgPnxM,1616
56
- python_terminusgps-36.3.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
57
- python_terminusgps-36.3.0.dist-info/licenses/COPYING,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
58
- python_terminusgps-36.3.0.dist-info/RECORD,,
55
+ python_terminusgps-36.4.0.dist-info/METADATA,sha256=xoH1ax910P2c01YF2hjEHRF_9fhIxD9psr8G23Nhlzw,1616
56
+ python_terminusgps-36.4.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
57
+ python_terminusgps-36.4.0.dist-info/licenses/COPYING,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
58
+ python_terminusgps-36.4.0.dist-info/RECORD,,
@@ -211,12 +211,12 @@ class CustomerProfile(AuthorizenetProfileBase):
211
211
  """
212
212
  cprofile_obj = apicontractsv1.customerProfileType()
213
213
 
214
- if self.merchant_id:
215
- cprofile_obj.merchantCustomerId = self.merchant_id
216
- if self.email:
217
- cprofile_obj.email = self.email
218
- if self.desc:
219
- cprofile_obj.description = self.desc
214
+ if self._merchant_id:
215
+ cprofile_obj.merchantCustomerId = self._merchant_id
216
+ if self._email:
217
+ cprofile_obj.email = self._email
218
+ if self._desc:
219
+ cprofile_obj.description = self._desc
220
220
 
221
221
  return cprofile_obj
222
222
 
@@ -242,10 +242,10 @@ class CustomerProfile(AuthorizenetProfileBase):
242
242
 
243
243
  if self.id:
244
244
  request.customerProfileId = self.id
245
- if self.merchant_id:
246
- request.merchantCustomerId = self.merchant_id
247
- if self.email:
248
- request.email = self.email
245
+ if self._merchant_id:
246
+ request.merchantCustomerId = self._merchant_id
247
+ if self._email:
248
+ request.email = self._email
249
249
 
250
250
  controller = apicontrollers.getCustomerProfileController(request)
251
251
  return self.execute_controller(controller)
@@ -212,6 +212,23 @@ class WialonBase:
212
212
  if field["n"] == key:
213
213
  return int(field["id"])
214
214
 
215
+ def update_pfield(self, key: str, value: str) -> None:
216
+ """
217
+ Updates a profile field by key.
218
+
219
+ :param key: A profile field key (name).
220
+ :type key: :py:obj:`str`
221
+ :param value: A string.
222
+ :type value: :py:obj:`str`
223
+ :raises WialonError: If something goes wrong with Wialon.
224
+ :returns: Nothing.
225
+ :rtype: :py:obj:`None`
226
+
227
+ """
228
+ self.session.wialon_api.item_update_profile_field(
229
+ **{"itemId": self.id, "n": key, "v": value}
230
+ )
231
+
215
232
  def update_afield(self, key: str, value: str) -> None:
216
233
  """
217
234
  Updates an admin field by key.
@@ -299,3 +316,17 @@ class WialonBase:
299
316
  )
300
317
  fields = response.get("item", {}).get("aflds") if response is not None else {}
301
318
  return {field["n"]: field["v"] for field in fields.values()} if fields else {}
319
+
320
+ @property
321
+ def pfields(self) -> dict[str, str]:
322
+ """
323
+ Profile fields for the Wialon object.
324
+
325
+ :type: :py:obj:`dict`
326
+
327
+ """
328
+ response = self.session.wialon_api.core_search_item(
329
+ **{"id": self.id, "flags": flags.DataFlag.UNIT_PROFILE_FIELDS}
330
+ )
331
+ fields = response.get("item", {}).get("pflds") if response is not None else {}
332
+ return {field["n"]: field["v"] for field in fields.values()} if fields else {}