Skip to content

Commit bf36dae

Browse files
authored
Merge pull request #21 from Code4GovTech/sasi_dev_v2
issue api performance fix
2 parents 948b60b + 21c2c06 commit bf36dae

1 file changed

Lines changed: 15 additions & 31 deletions

File tree

app.py

Lines changed: 15 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -127,37 +127,21 @@ def get_issues():
127127
type: string
128128
"""
129129
try:
130-
# Fetch all issues with their details
131-
dmp_issues = SupabaseInterface().get_instance().client.table('dmp_issues').select('*').execute().data
132-
133-
# Create a defaultdict of lists to group issues by 'org_id'
134-
grouped_data = defaultdict(list)
135-
for issue in dmp_issues:
136-
# Fetch organization details for the issue
137-
org_details = SupabaseInterface().get_instance().client.table('dmp_orgs').select('*').eq('id', issue['org_id']).execute().data
138-
if org_details:
139-
issue['org_name'] = org_details[0]['name']
140-
141-
grouped_data[issue['org_id']].append(issue)
142-
143-
# Prepare response in the required format
144-
response = []
145-
for org_id, items in grouped_data.items():
146-
issues = [
147-
{
148-
"id": item['issue_number'],
149-
"name": item['title']
150-
}
151-
for item in items
152-
]
153-
154-
response.append({
155-
"org_id": org_id,
156-
"org_name": items[0]['org_name'], # Assuming all items in the group have the same org_name
157-
"issues": issues
158-
})
159-
160-
return jsonify({"issues": response})
130+
# Fetch all issues with their details
131+
response = SupabaseInterface().get_instance().client.table('dmp_orgs').select('*, dmp_issues(*)').execute()
132+
res = []
133+
134+
for org in response.data:
135+
obj = {}
136+
issues = org['dmp_issues']
137+
obj['org_id'] = org['id']
138+
obj['org_name'] = org['name']
139+
renamed_issues = [{"id": issue["issue_number"], "name": issue["title"]} for issue in issues]
140+
obj['issues'] = renamed_issues
141+
142+
res.append(obj)
143+
144+
return jsonify({"issues": res})
161145

162146
except Exception as e:
163147
error_traceback = traceback.format_exc()

0 commit comments

Comments
 (0)