From deb11e07ae66c175d26cf26c76c0550ed93eeb3f Mon Sep 17 00:00:00 2001 From: Norm Rasmussen Date: Mon, 27 Feb 2023 16:04:19 -0500 Subject: [PATCH] Trying to get exceptions and errors to work. I also added a new feature. I need to consolidate the API calls, but not sure how yet... I have a function per action when all that changes is the url... --- app/__pycache__/routes.cpython-311.pyc | Bin 13351 -> 15932 bytes app/routes.py | 107 +++++++++++++++++++------ app/static/np-favicon.png | Bin 0 -> 59695 bytes app/templates/get.html | 42 +--------- app/templates/head.html | 2 +- app/templates/index.html | 6 +- app/templates/options.html | 24 ++++-- 7 files changed, 106 insertions(+), 75 deletions(-) create mode 100644 app/static/np-favicon.png diff --git a/app/__pycache__/routes.cpython-311.pyc b/app/__pycache__/routes.cpython-311.pyc index 1087553e3cf08f0e2a2714ae6a6095752e9eaf2b..294ccbd1e78c6c9551b6becf569dc857237aab19 100644 GIT binary patch delta 5694 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 delta 3430 zcmbVOYit}>72esG_c6O;@6)f?I_o7h zU5Zt)DfTnwyA?OhCet0fOPAufV!DaLJ7t0C3F*J|bZ+phEP2kB=Tcl>u&8^3Yt_0% z#hU_d3h&aTcs6+W)_HhW*4nW)LTQ7mf1PV(*%eL-P2s>gtq=1i+^v9@g{GR|I$dDJ zvw)tVb=uIfr^DPd8(ycYE_<%4N6m)aRx7otDPB`fg<7lBP4W6M5$BZFR!=Y~mJ|Gr z)PGDa5y7w|ayj^}B?h0mdTl>J*H_?rXBgxTFC28s*5?J*3~Bdogj=vn+$mgxOX7$% zZ@J-yxBSfw*1T2mt}Jd+q=&|pHE_Kv2yH``>8OL(+(E$y1!rBjs=Q^SpI-^w z4VFTMMKKmy9+xdnm?EJgOoVNoEs+PVWJXah_Dt&OlwlptrqwyKVbha(N;PaMV_Ehw zv3{lp{?NY(zUPU7B}He=XwESb?GHWox9!!pfM zte!?_r{%I4O=X+#QL`b)vJ3(H{+^12HWi;zFR?8sq~)|;B;#e%eXIM*;b)ItIePi% zVukn0Gp~kzThX`xd2gTKfj7Ko;KLSgOm4X`{v+}B$)Y^?&QMVvem_){N4|65`QZg| z)1p}QQroNTMPKuR*isZ*3S!HmfAfvq@6;6hu?2su=#Le|*gbg5TLVKYi;}1h!EiGb^T* znb!jUibUaezG>7P^nW0ngT}zGV)naLYYF+Z_c=y&Enj)>+BXvk=gYg!3rxre&;2d$ zz2SjpgKdHr$+H=L5%l!>IWro|{>X(uUQ&X0LpO0BcW5vCLehqj1=Uay+AN6B5!yBz zMg^-Rs3xdGFl?!0W=iArGR#SZHIUGoN@{vMnNFNh<5=7|!LTMSCb9Y%^`dUrl+zR1 z`3EjN@l;CXteTMyp@W<~EyuFcOj9*ZFj6z3(Syk7WKxsC9c~pWVN1BFx0Tj+5Ofl> z5p*FKwxq76HN%c?7$)7YDlD60-Ecj;r=f?8h-R#pEJb4CD&OF*;Y0PMa-C82_(W+R z>}zOBvui(q(dt8jA6~0YI_;jL!jcIQ{54bF!q)xo?<>>~EYu$<)*pe(txfhezcaMd z0iV=#*5=>bUWknrq_G8QtSF5Y9Ao#S!Gbi%qVN}K(#H1U5Vj|*Al4X#BdQY za-|SXqrunl*3Qkp(hw8i-!-+}`8T%~_Kp;!V++!;qI9g_ICf8}z4{Ga)S1fOgrdZ0 zPuZNF%x2~z@=wj;a?)|42NB*q#b!^-=e%YcvJbnO>)a3J8YY^%PI1nh!pT^SU;?3> z4G(1^zC!o^IVEfy23nd*d63pdqOmkC^vry^<(eQw=l{|AYXSSk&)fEmQxh){#a>EV z1kVjMok*rwj#Mjw&RH0Bv>9%j#!pV`64~=MtfZcy&M|Z<9Wib<@e&L>C{wwIUe>j>VF8IwtrYn z&3nerOU9?v%2m4`xo1ASS~WI_hO2R`_QeeaBfBKQYSB{kxCeaQowH|YxLPz1r!bo$ z>HkqGbkjTt%b`9Tu#aM06OzU*(*gAE{CnMi^?QA!*J7stSq{ddUlj)6$I&LC4+_x% z^L-Q8``exTWIKl@a58$Vk@u}DD!f2re?$gR9sEorzoltv6MPwfYd>_I`F4iKlyq#(1i@9 z35E%X0{qM{thubF^9EvAiEf4kA4?s?#b(gV5RxSZU8M&nPa5whyo=;%B4QOkP4Gho zm)GdKWHsrm@5OCF+e;{0oUh&X5hfS@xZ_Jg9n=nX&hm4si~KJj81`Huqa?IaBWx#$ z4Wrdn{<*_H8u(FE3i?TMqYlL1JWg9IB0kbuhD%c?7(cqWln<8j8z#IsMm z>_N~ml+G&CDRnpdK0eb?p@I3uozqU|W&T^T!zVjy!vSIEk_qAO7Lz$r6xx@}B$b6a$n1 diff --git a/app/routes.py b/app/routes.py index dbda80b..29a0558 100644 --- a/app/routes.py +++ b/app/routes.py @@ -4,9 +4,41 @@ import requests import json import itertools import pandas as pd +from itables import show import re +def handle_responses(response): + print(response.status_code) + print(response.text) + try: + response.raise_for_status() + print(response.raise_for_status()) + except requests.exceptions as err: + return render_template("index.html", title="Error Home", error=err) + print(err) + finally: + return correct_key(response) + + +def temp(): + if "401" in str(response): + error = [ + "Unauthorized access error. This can mean a lot of things.", + "Has the key changed, recently?", + ] + return render_template("index.html", title="Error Home", error=error) + else: + return correct_key(response) + + +def correct_key(response): + data = response.json() + session["school"] = data["data"]["attributes"]["properties"]["name"] + print(session["school"]) + return render_template("options.html", title="Options") + + @app.route("/", methods=["GET", "POST"]) def ask_key(): session.clear() @@ -19,10 +51,7 @@ def ask_key(): url = "https://api.northpass.com/v2/properties/school" headers = {"accept": "application/json", "X-Api-Key": session["key"]} response = requests.get(url, headers=headers) - data = response.json() - session["school"] = data["data"]["attributes"]["properties"]["name"] - print(session["school"]) - return render_template("options.html", title="Options") + return handle_responses(response) else: error = "Hm. That doesn't seem right" return render_template("index.html", title="Home", error=error) @@ -36,6 +65,20 @@ def render_home(): return render_template("index.html", title="Home") +@app.route("/table") +def table(): + return render_template("table.html", tables=[session["dfhtml"]], titles=["Table"]) + + +@app.route("/downloadcsv", methods=["GET", "POST"]) +def download_csv(): + if request.method == "GET": + download = make_response(session["dfcsv"]) + download.headers["Content-Disposition"] = "attachment; filename=export.csv" + download.headers["Content-Type"] = "text/csv" + return download + + @app.route("/get_courses", methods=["GET", "POST"]) def get_courses(): array = [] @@ -61,7 +104,11 @@ def get_courses(): for keys, values in response["attributes"].items(): course_dict[keys] = values array.append(course_dict) - dataframe = pd.DataFrame(array).drop("list_image_url", axis=1) + dataframe = pd.DataFrame(array).drop( + ["list_image_url", "permalink"], + axis=1 + ) + dataframe['full_description'] = dataframe['full_description'].str.replace(r'<[^<>]*>', '', regex=True) print(dataframe) if "next" not in nextlink: @@ -69,25 +116,11 @@ def get_courses(): dfcourse = dataframe.to_html() session["dfcsv"] = dataframe.to_csv() - return render_template("table.html", table=dfcourse, title="List of Courses") + return render_template("get.html", table=dfcourse, title="List of Courses") else: return "This isn't working. Let's go our own way." -@app.route("/table") -def table(): - return render_template("table.html", tables=[session["dfhtml"]], titles=["Table"]) - - -@app.route("/downloadcsv", methods=["GET", "POST"]) -def download_csv(): - if request.method == "GET": - download = make_response(session["dfcsv"]) - download.headers["Content-Disposition"] = "attachment; filename=export.csv" - download.headers["Content-Type"] = "text/csv" - return download - - @app.route("/get_people", methods=["GET", "POST"]) def get_people(): array = [] @@ -117,14 +150,15 @@ def get_people(): break dfppl = dataframe.to_html() + dfshow = show(dfppl) session["dfcsv"] = dataframe.to_csv() - return render_template("table.html", table=dfppl, title="List of People") + return render_template("get.html", table=dfppl, title="List of People") else: return "what what" -@app.route("/add_ppl_options", methods=["POST"]) -def add_ppl_options(): +@app.route("/add_ppl_opts", methods=["POST"]) +def add_ppl_opts(): array = [] dict_response = {} df = pd.DataFrame() @@ -182,8 +216,8 @@ def bulk_add_ppl(): return payload -@app.route("/add_groups_options", methods=["POST"]) -def add_groups_options(): +@app.route("/add_groups_opts", methods=["POST"]) +def add_groups_opts(): array = [] dict_response = {} df = pd.DataFrame() @@ -268,6 +302,29 @@ def bulk_add_groups(): return render_template("bulk_add_groups.html", title="Shrug", error=error) +@app.route("/ppl_to_groups_opts", methods=["GET", "POST"]) +def ppl_to_groups_opts(): + pass + + +@app.route("/ppl_to_groups", methods=["GET", "POST"]) +def ppl_to_groups(): + person_ids = [] + group_ids = [] + url = "https://api.northpass.com/v2/bulk/people/membership" + payload = { + "payload": { + "person_ids": person_ids, + "group_ids": group_ids, + } + } + headers = { + "accept": "application/json", + "content-type": "application/json", + "X-Api-Key": session["key"], + } + + app.secret_key = "@&I\x1a?\xce\x94\xbb0w\x17\xbf&Y\xa2\xc2(A\xf5\xf2\x97\xba\xeb\xfa" diff --git a/app/static/np-favicon.png b/app/static/np-favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..58725f5231b8ac08f0b328a1e81ef7d54dd0ffff GIT binary patch literal 59695 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 {% extends 'head.html' %} {% block content %} -

Hello! Please select what you'd like to do.

- -
-
- - -

Get People

-
-
- -
- - -

Get Courses

-
-
- - - - {% endblock %} +{% include 'table.html' %} +{% endblock %} diff --git a/app/templates/head.html b/app/templates/head.html index 7e1fe2b..36c24e2 100644 --- a/app/templates/head.html +++ b/app/templates/head.html @@ -8,7 +8,7 @@ href="https://cdn.jsdelivr.net/npm/remixicon@2.5.0/fonts/remixicon.css" rel="stylesheet" /> - + CSM Bulk App diff --git a/app/templates/index.html b/app/templates/index.html index 39dc221..f0f4ecc 100644 --- a/app/templates/index.html +++ b/app/templates/index.html @@ -2,9 +2,9 @@ {% extends 'head.html' %} {% block content %}

Hello! Please click below to enter your key.

- {% if error %} -

{{ error }} - {% endif %} + {% for error in error %} +

{{ error }}

+ {% endfor %}
diff --git a/app/templates/options.html b/app/templates/options.html index 99b2e05..a840815 100644 --- a/app/templates/options.html +++ b/app/templates/options.html @@ -4,6 +4,7 @@

Hello! Please find the options for {{ session.school }}.

+

{% endblock %} +