From 0d57fb86792ad496b46957829009bc000e1bfea6 Mon Sep 17 00:00:00 2001 From: PhilipWafula Date: Mon, 3 May 2021 11:35:29 +0300 Subject: [PATCH] Adds task to handle importing ussd data. --- .../scripts/cic_ussd/import_task.py | 35 +++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/apps/contract-migration/scripts/cic_ussd/import_task.py b/apps/contract-migration/scripts/cic_ussd/import_task.py index 88ab15c2..bc06b4e8 100644 --- a/apps/contract-migration/scripts/cic_ussd/import_task.py +++ b/apps/contract-migration/scripts/cic_ussd/import_task.py @@ -55,7 +55,7 @@ class MetadataTask(ImportTask): def meta_url(self): scheme = 'http' if self.meta_ssl: - scheme += s + scheme += 's' url = urllib.parse.urlparse('{}://{}:{}/{}'.format(scheme, self.meta_host, self.meta_port, self.meta_path)) return urllib.parse.urlunparse(url) @@ -233,7 +233,7 @@ def set_pins(config: dict, phone_to_pins: list): # update db for element in phone_to_pins: - sql = f'UPDATE account SET password_hash = %s WHERE phone_number = %s' + sql = 'UPDATE account SET password_hash = %s WHERE phone_number = %s' db_cursor.execute(sql, (element[1], element[0])) logg.debug(f'Updating: {element[0]} with: {element[1]}') @@ -243,3 +243,34 @@ def set_pins(config: dict, phone_to_pins: list): # close connections db_cursor.close() db_conn.close() + + +@celery_app.task +def set_ussd_data(config: dict, ussd_data: dict): + # define db connection + db_conn = psycopg2.connect( + database=config.get('database'), + host=config.get('host'), + port=config.get('port'), + user=config.get('user'), + password=config.get('password') + ) + db_cursor = db_conn.cursor() + + # process ussd_data + account_status = 1 + if ussd_data['is_activated'] == 1: + account_status = 2 + preferred_language = ussd_data['preferred_language'] + phone_number = ussd_data['phone'] + + sql = 'UPDATE account SET account_status = %s, preferred_language = %s WHERE phone_number = %s' + db_cursor.execute(sql, (account_status, preferred_language, phone_number)) + + # commit changes + db_conn.commit() + + # close connections + db_cursor.close() + db_conn.close() +