Skip to content
This repository has been archived by the owner on Sep 12, 2024. It is now read-only.

Commit

Permalink
Merge pull request #44 from dibik96/17.0-1.2-dibik
Browse files Browse the repository at this point in the history
G2P-2808: Fixes for subentires mapping and ODK record count
  • Loading branch information
shibu-narayanan committed Sep 3, 2024
2 parents 627932d + f35d95e commit 3356ccb
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 6 deletions.
13 changes: 10 additions & 3 deletions g2p_odk_importer/models/odk_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ def import_delta_records(self, last_sync_timestamp=None, skip=0):
parser.parse(x["submission_time"]) if x.get("submission_time") not in (None, "") else None,
),
)

partner_count = 0
for member in data["value"]:
_logger.info("ODK RAW DATA:%s" % member)
try:
Expand All @@ -112,13 +112,15 @@ def import_delta_records(self, last_sync_timestamp=None, skip=0):
updated_mapped_json = self.get_addl_data(mapped_json)

self.env["res.partner"].sudo().create(updated_mapped_json)

partner_count += 1
data.update({"form_updated": True})
except Exception as e:
data.update({"form_failed": True})
_logger.error("An exception occurred%s" % e)
raise ValidationError(f"The following errors occurred:\n{e}") from e

data.update({"partner_count": partner_count})

return data

def handle_one2many_fields(self, mapped_json):
Expand Down Expand Up @@ -308,9 +310,14 @@ def import_record_by_instance_id(self, instance_id):
f"Submissions('{instance_id}')"
)
headers = {"Authorization": f"Bearer {self.session}"}
params = {
"$skip": 0,
"$count": "true",
"$expand": "*",
}

try:
response = requests.get(url, headers=headers, timeout=10)
response = requests.get(url, headers=headers, params=params, timeout=10)
response.raise_for_status()
data = response.json()
except requests.RequestException as e:
Expand Down
3 changes: 2 additions & 1 deletion g2p_odk_importer/models/odk_import.py
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,8 @@ def import_records(self):
client.login()
imported = client.import_delta_records(last_sync_timestamp=config.last_sync_time)
if "form_updated" in imported:
message = "ODK form records were imported successfully."
partner_count = imported.get("partner_count", 0)
message = f"ODK form {partner_count} records were imported successfully."
types = "success"
config.update({"last_sync_time": fields.Datetime.now()})
elif "form_failed" in imported:
Expand Down
7 changes: 5 additions & 2 deletions g2p_odk_importer/tests/test_odk_import.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ def test_test_connection(self, mock_test_connection, mock_login):
@patch.object(ODKClient, "login")
@patch.object(ODKClient, "import_delta_records")
def test_import_records(self, mock_import_delta_records, mock_login):
mock_import_delta_records.return_value = {"form_updated": True}
mock_import_delta_records.return_value = {"form_updated": True, "partner_count": 5}
mock_login.return_value = None

odk_import = self.env["odk.import"].create(
Expand All @@ -67,8 +67,11 @@ def test_import_records(self, mock_import_delta_records, mock_login):

self.assertTrue(mock_login.called)
self.assertTrue(mock_import_delta_records.called)

expected_message = "ODK form 5 records were imported successfully."

self.assertEqual(result["params"]["type"], "success")
self.assertEqual(result["params"]["message"], "ODK form records were imported successfully.")
self.assertEqual(result["params"]["message"], expected_message)

@patch.object(ODKClient, "login")
@patch.object(ODKClient, "import_delta_records")
Expand Down

0 comments on commit 3356ccb

Please sign in to comment.