44from utils import require_secret_key
55from db import SupabaseInterface
66from utils import determine_week
7- from v2_utils import calculate_overall_progress , define_mentors_data , week_data_formatter
7+ from v2_utils import calculate_overall_progress , define_link_data , week_data_formatter
88
99v2 = Blueprint ('v2' , __name__ )
1010
1111
1212@v2 .route ('/issues/<owner>/<issue>' , methods = ['GET' ])
1313@require_secret_key
1414def get_issues_by_owner_id_v2 (owner , issue ):
15- try :
15+ try :
1616 SUPABASE_DB = SupabaseInterface ().get_instance ()
17- response = SUPABASE_DB .client .table ('dmp_issue_updates' ).select ('*' ).eq ('owner' , owner ).eq ('issue_number' , issue ).execute ()
17+ # Fetch issue updates based on owner and issue number
18+
19+ url = f"https://github.com/{ owner } "
20+ dmp_issue_id = SUPABASE_DB .client .table ('dmp_issues' ).select ('*' ).like ('issue_url' , f'%{ url } %' ).eq ('issue_number' , issue ).execute ()
21+ if not dmp_issue_id .data :
22+ return jsonify ({'error' : "No data found" }), 500
23+
24+ dmp_issue_id = dmp_issue_id .data [0 ]
25+ response = SUPABASE_DB .client .table ('dmp_issue_updates' ).select ('*' ).eq ('dmp_id' , dmp_issue_id ['id' ]).execute ()
26+
1827 if not response .data :
19- return jsonify ({'error' : "No data found" }), 200
28+ return jsonify ({'error' : "No data found" }), 500
29+
2030 data = response .data
2131
2232 final_data = []
2333 w_learn_url ,w_goal_url ,avg ,cont_details ,plain_text_body ,plain_text_wurl = None ,None ,None ,None ,None ,None
24-
34+
2535 for val in data :
26- issue_url = "https://api.github.com/repos/{}/{}/issues/comments" .format (val ['owner' ],val ['repo' ])
36+ # issue_url = "https://api.github.com/repos/{}/{}/issues/comments".format(val['owner'],val['repo'])
2737 # week_avg ,cont_name,cont_id,w_goal,w_learn,weekby_avgs,org_link = find_week_avg(issue_url)
2838 # mentors_data = find_mentors(val['issue_url']) if val['issue_url'] else {'mentors': [], 'mentor_usernames': []}
2939
3040 if val ['body_text' ]:
3141 if "Weekly Goals" in val ['body_text' ] and not w_goal_url :
3242 w_goal_url = val ['body_text' ]
3343 plain_text_body = markdown2 .markdown (val ['body_text' ])
34-
3544 tasks = re .findall (r'\[(x| )\]' , plain_text_body )
3645 total_tasks = len (tasks )
3746 completed_tasks = tasks .count ('x' )
38-
3947 avg = round ((completed_tasks / total_tasks )* 100 ) if total_tasks != 0 else 0
4048
4149 if "Weekly Learnings" in val ['body_text' ] and not w_learn_url :
@@ -46,28 +54,27 @@ def get_issues_by_owner_id_v2(owner, issue):
4654 # mentors = mentors_data['mentors']
4755 # ment_usernames = mentors_data['mentor_usernames']
4856 if not cont_details :
49- cont_details = SUPABASE_DB .client .table ('dmp_issues' ).select ('*' ).eq ('repo_url' ,val ['dmp_issue_url' ]).execute ().data
50-
51-
57+ cont_details = dmp_issue_id ['contributor_username' ]
5258 week_data = week_data_formatter (plain_text_body ,"Goals" )
59+
5360 res = {
5461 "name" : owner ,
55- "description" : val ['description' ],
56- "mentor" : define_mentors_data ( val [ 'mentor_name ' ]),
57- "mentor_id" : val [ 'mentor_id ' ] ,
58- "contributor" :define_mentors_data (cont_details [ 0 ][ 'contributor_name' ] ),
62+ "description" : dmp_issue_id ['description' ],
63+ "mentor" : define_link_data ( dmp_issue_id [ 'mentor_username ' ]),
64+ "mentor_id" : dmp_issue_id [ 'mentor_username ' ] ,
65+ "contributor" :define_link_data (cont_details ),
5966 # "contributor_id": cont_details[0]['contributor_id'],
60- "org" : define_mentors_data ( val [ 'owner ' ])[0 ] if val [ 'owner ' ] else [],
67+ "org" : define_link_data ( dmp_issue_id [ 'mentor_username ' ])[0 ] if dmp_issue_id [ 'mentor_username ' ] else [],
6168 "weekly_goals_html" : w_goal_url ,
6269 "weekly_learnings_html" : w_learn_url ,
6370 "overall_progress" :calculate_overall_progress (week_data ,12 ),
64- "issue_url" :val [ 'html_issue_url ' ],
71+ "issue_url" :dmp_issue_id [ 'issue_url ' ],
6572 "pr_details" :None ,
6673 "weekly_goals" :week_data ,
67- "weekly_learns " :week_data_formatter (plain_text_wurl ,"Learnings" )
74+ "weekly_learnings " :week_data_formatter (plain_text_wurl ,"Learnings" )
6875 }
6976
70- pr_Data = SUPABASE_DB .client .table ('dmp_pr_updates' ).select ('*' ).eq ('repo ' , val [ 'repo ' ]).eq ('issue_number_title ' ,issue ).execute ()
77+ pr_Data = SUPABASE_DB .client .table ('dmp_pr_updates' ).select ('*' ).eq ('dmp_id ' , dmp_issue_id [ 'id ' ]).eq ('title ' ,issue ).execute ()
7178 transformed = {"pr_details" : []}
7279 if pr_Data .data :
7380 for pr in pr_Data .data :
@@ -80,13 +87,7 @@ def get_issues_by_owner_id_v2(owner, issue):
8087 })
8188
8289 res ['pr_details' ] = transformed ['pr_details' ]
83-
84- # Adding each week as a separate key
85- # for week in weekby_avgs:
86- # res.update(week)
87-
88- # final_data.append(res)
89-
90+
9091 return jsonify (res ),200
9192
9293 except Exception as e :
0 commit comments