From 62a9fd3252ec2d5a53b8ac0422369fe007cdaa07 Mon Sep 17 00:00:00 2001 From: Bhumin Date: Mon, 8 Apr 2024 14:01:05 -0700 Subject: [PATCH] DGJ Added no of positions field in employee data API --- forms-flow-api/src/formsflow_api/models/employee_data.py | 3 ++- .../src/formsflow_api/services/employeeDataService.py | 7 ++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/forms-flow-api/src/formsflow_api/models/employee_data.py b/forms-flow-api/src/formsflow_api/models/employee_data.py index c5a1030ab..da8ededa4 100644 --- a/forms-flow-api/src/formsflow_api/models/employee_data.py +++ b/forms-flow-api/src/formsflow_api/models/employee_data.py @@ -4,7 +4,7 @@ class EmployeeData(): # data: Response retrieved from the ODS # Spec of possible values can be found at: https://analytics-testapi.psa.gov.bc.ca/apiserver/api.rst#Datamart_Telework_employee_demo - def __init__(self, data, noofrecords=1): + def __init__(self, data, noofrecords=1, noofpositions=1): self.displayName = " ".join(filter(None, (data.get("first_name"), data.get("last_name")))) self.name = data.get("name") self.firstName = data.get("first_name") @@ -67,3 +67,4 @@ def __init__(self, data, noofrecords=1): # Possible values: "P" for Primary, "S" for Secondary and "N" for Not Applicable self.jobIndicator = data.get("job_indicator") self.noofrecords = noofrecords + self.noofpositions = noofpositions diff --git a/forms-flow-api/src/formsflow_api/services/employeeDataService.py b/forms-flow-api/src/formsflow_api/services/employeeDataService.py index 2f0734f51..2786d6949 100644 --- a/forms-flow-api/src/formsflow_api/services/employeeDataService.py +++ b/forms-flow-api/src/formsflow_api/services/employeeDataService.py @@ -33,7 +33,12 @@ def get_employee_data_from_bcgov(guid): employee_data_res = response_from_BCGov.json() if employee_data_res and employee_data_res["value"] and len(employee_data_res["value"]) > 0: - emp_data = EmployeeData(employee_data_res["value"][0], len(employee_data_res["value"])) + noofrecords = len(employee_data_res["value"]) + if len(employee_data_res["value"]) > 1: + positions = set(job['position_number'] for job in employee_data_res["value"]) + emp_data = EmployeeData(employee_data_res["value"][0], noofrecords, len(positions)) + else: + emp_data = EmployeeData(employee_data_res["value"][0], noofrecords, 1) cache.set(guid, emp_data, timeout=14400) return emp_data.__dict__ else: