summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAzka Nathan <darizkyfaz@gmail.com>2024-12-10 16:13:37 +0700
committerAzka Nathan <darizkyfaz@gmail.com>2024-12-10 16:13:37 +0700
commit8e9b91259ecd62eff4e17210678287b844f78132 (patch)
tree4572ffe3ac70142cb454934d028bb8362c40bb34
parentcc9abe07512a6e317dc82f6a4be626c55f298379 (diff)
test wati
-rw-r--r--indoteknik_custom/models/wati.py38
1 files changed, 28 insertions, 10 deletions
diff --git a/indoteknik_custom/models/wati.py b/indoteknik_custom/models/wati.py
index f3632334..ec7bd3b9 100644
--- a/indoteknik_custom/models/wati.py
+++ b/indoteknik_custom/models/wati.py
@@ -217,26 +217,42 @@ class WatiHistory(models.Model):
limit = 50
wati_histories = self.env['wati.history'].search(domain, limit=limit)
count = 0
+
for wati_history in wati_histories:
count += 1
- _logger.info('[Parse Notification] Process: %s/%s' % (str(count), str(limit)))
+ _logger.info('[Parse Notification] Processing: %s/%s', count, limit)
wati_api = self.env['wati.api']
- # Perbaikan pada params 'attribute' untuk menghindari masalah "type object is not subscriptable"
+ # Perbaikan pada parameter JSON
params = {
'pageSize': 1,
'pageNumber': 1,
- 'attribute': json.dumps([{'name': "phone", 'operator': "contain", 'value': wati_history.wa_id}]),
+ 'attribute': json.dumps([
+ {'name': "phone", 'operator': "contain", 'value': wati_history.wa_id}
+ ]),
}
- wati_contacts = wati_api.http_get('/api/v1/getContacts', params)
+ try:
+ wati_contacts = wati_api.http_get('/api/v1/getContacts', params)
+ except Exception as e:
+ _logger.error('Error while calling WATI API: %s', str(e))
+ continue
+ # Validasi respons dari API
+ if not isinstance(wati_contacts, dict):
+ _logger.error('Invalid response format from WATI API: %s', wati_contacts)
+ continue
+
if wati_contacts.get('result') != 'success':
- return
+ _logger.warning('WATI API request failed with result: %s', wati_contacts.get('result'))
+ continue
contact_list = wati_contacts.get('contact_list', [])
-
+ if not contact_list:
+ _logger.info('No contacts found for WA ID: %s', wati_history.wa_id)
+ continue
+
perusahaan = email = ''
for data in contact_list:
custom_params = data.get('customParams', [])
@@ -247,12 +263,14 @@ class WatiHistory(models.Model):
perusahaan = value
elif name == 'email':
email = value
- # End inner loop
# Update wati_history fields
- wati_history.perusahaan = perusahaan
- wati_history.email = email
- wati_history.is_get_attribute = True
+ wati_history.write({
+ 'perusahaan': perusahaan,
+ 'email': email,
+ 'is_get_attribute': True,
+ })
+ _logger.info('Wati history updated: %s', wati_history.id)
# @api.onchange('last_reply_date')
# def _compute_expired_date(self):