From 931c78975fdbfaaf6c18746a6216c9ce7d181a1b Mon Sep 17 00:00:00 2001 From: manav1403 Date: Sat, 12 Dec 2020 21:46:19 +0530 Subject: [PATCH 1/5] fix --- controllers/default.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/controllers/default.py b/controllers/default.py index 6b9456f5..59349ea2 100644 --- a/controllers/default.py +++ b/controllers/default.py @@ -343,9 +343,6 @@ def todo(): tltable = db.todo_list res = db(tltable.user_id == session.user_id).select(tltable.problem_link) - # for api request - if utilities.is_apicall(): - return response.json(dict(todos=res)) table = TABLE(_class="bordered centered") table.append(THEAD(TR(TH(T("Problem")), @@ -364,6 +361,10 @@ def todo(): ptable.user_ids, ptable.custom_user_ids) + # for api request + if utilities.is_apicall(): + return response.json(dict(todos=rows)) + def _get_ids(ids): ids = ids.split(",") return [] if ids[0] == "" else ids From c91f7e6f8ba84ede4f8d8f58f97a1ab81f4eb066 Mon Sep 17 00:00:00 2001 From: manav1403 Date: Thu, 17 Dec 2020 17:00:22 +0530 Subject: [PATCH 2/5] correction in auth --- modules/utilities.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/utilities.py b/modules/utilities.py index 8ecbddc6..1addb705 100644 --- a/modules/utilities.py +++ b/modules/utilities.py @@ -57,7 +57,6 @@ def verifier(*args, **kwargs): current.response.status = 401 return current.response.json('Token is invalid') current.request.extension = 'json' - current.request.ajax = True return function(*args, **kwargs) return verifier @@ -66,6 +65,8 @@ def check_api_userauth(function): """ API Token with userauth Checking Decorator """ + if is_apicall(): + current.request.ajax = True @current.auth_jwt.allows_jwt() @check_api_token @current.auth.requires_login() From 66f259cf6d0b5659b886f1ea6bd872b1173b89a3 Mon Sep 17 00:00:00 2001 From: manav1403 Date: Thu, 17 Dec 2020 18:24:38 +0530 Subject: [PATCH 3/5] leader board corr --- controllers/default.py | 2 +- controllers/problems.py | 3 +++ modules/utilities.py | 6 ++++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/controllers/default.py b/controllers/default.py index b1bf5e31..5896cf72 100644 --- a/controllers/default.py +++ b/controllers/default.py @@ -1407,7 +1407,7 @@ def _get_tooltip_data(tooltip, buttontype, user_id): return dict(table1=table1, table2=table2) # ---------------------------------------------------------------------------- -utilities.check_api_user +@utilities.check_api_user def search(): """ Show the list of registered users diff --git a/controllers/problems.py b/controllers/problems.py index 91345c17..201b3b6d 100644 --- a/controllers/problems.py +++ b/controllers/problems.py @@ -976,6 +976,9 @@ def recommendations(): output["recommendations_length"] = len(recommendation_pids) if len(recommendation_pids) > 0: problem_details = db(ptable.id.belongs(recommendation_pids)).select() + if utilities.is_apicall(): + output["problems"] = problem_details + return output output["table"] = utilities.get_problems_table(problem_details, user_id, "recommendation", diff --git a/modules/utilities.py b/modules/utilities.py index 1addb705..27987239 100644 --- a/modules/utilities.py +++ b/modules/utilities.py @@ -82,6 +82,12 @@ def check_api_user(function): API Token with user Checking Decorator Login is not required """ + if not is_apicall(): + def verifier(*args, **kwargs): + return function(*args, **kwargs) + return verifier + + current.request.ajax = False @check_api_token @current.auth_jwt.allows_jwt(function) def verifier(*args, **kwargs): From fc9088109574afe973b90cb73425571d5a0ee113 Mon Sep 17 00:00:00 2001 From: manav1403 Date: Sat, 20 Mar 2021 20:54:54 +0530 Subject: [PATCH 4/5] remove .json dependecy in api --- controllers/default.py | 15 ++++++++++++++- controllers/user.py | 15 +++++++++++++-- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/controllers/default.py b/controllers/default.py index 6324adca..f54c571f 100644 --- a/controllers/default.py +++ b/controllers/default.py @@ -273,9 +273,15 @@ def user_editorials(): table_rows = sorted(table_rows, key=lambda x: (x[0], x[1]), reverse=True) - return dict(table_rows=table_rows[:10], + res = dict(table_rows=table_rows[:10], recent_editorials_table=table, pending_count=pending_count) + + # for api request + if utilities.is_apicall(): + return response.json(res) + + return res # ---------------------------------------------------------------------------- def user_wise_editorials(): @@ -748,6 +754,8 @@ def contests(): reminder_class = button_class + " orange set-reminder" left_tooltip_attrs = {"position": "left", "delay": "50"} + api_resp = [] + for contest in contest_list: if contest["site"] not in CONTESTS_SITE_MAPPING: continue @@ -764,6 +772,8 @@ def contests(): contest["name"] = contest["name"].encode("ascii", "ignore") + api_resp.append(contest) + append = tr.append if contest["status"] == "CODING": @@ -811,6 +821,9 @@ def contests(): tbody.append(tr) + if utilities.is_apicall(): + return response.json(dict(contests=api_resp)) + table.append(tbody) return dict(table=table, retrieved=True) diff --git a/controllers/user.py b/controllers/user.py index 1cfb48fe..3328e8a9 100644 --- a/controllers/user.py +++ b/controllers/user.py @@ -813,8 +813,10 @@ def _get_categorized_json(problem_ids): # ------------------------------------------------------------------------------ def get_stopstalk_user_stats(): if request.extension != "json": - raise HTTP(400) - return + # for api request + if not utilities.is_apicall(): + raise HTTP(400) + return user_id = request.vars.get("user_id", None) custom = request.vars.get("custom", None) @@ -842,6 +844,11 @@ def get_stopstalk_user_stats(): result = utilities.get_rating_information(user_id, custom, auth.is_logged_in()) + + # for api request + if utilities.is_apicall(): + return response.json(result) + return result # ------------------------------------------------------------------------------ @@ -974,6 +981,10 @@ def profile(): output["cf_count"] = cf_count + # for api request + if utilities.is_apicall(): + return response.json(output) + return output # ------------------------------------------------------------------------------ From 2bd1614d7f348fb59d086e61db2988d677e116da Mon Sep 17 00:00:00 2001 From: Manav Kapoor <51405571+manav1403@users.noreply.github.com> Date: Sat, 20 Mar 2021 21:14:27 +0530 Subject: [PATCH 5/5] Update utilities.py updated deps --- modules/utilities.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/utilities.py b/modules/utilities.py index 9ab8acbb..a53db110 100644 --- a/modules/utilities.py +++ b/modules/utilities.py @@ -65,8 +65,6 @@ def check_api_userauth(function): """ API Token with userauth Checking Decorator """ - if is_apicall(): - current.request.ajax = True @current.auth_jwt.allows_jwt() @check_api_token @current.auth.requires_login()