Skip to content
This repository was archived by the owner on Dec 8, 2022. It is now read-only.

Commit 1da8f42

Browse files
authored
Merge pull request #189 from codewizardshq/transitions
support for Transitions
2 parents 73853e9 + 5636179 commit 1da8f42

File tree

18 files changed

+540
-232
lines changed

18 files changed

+540
-232
lines changed

.github/workflows/main.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,3 +50,5 @@ jobs:
5050
run: eb deploy ${{ env.EB_ENV_NAME }}
5151
- name: Deploy Worker
5252
run: eb deploy CodeChallenge-worker
53+
- name: Deploy Testing
54+
run: eb deploy CodeChallenge-Testing

.run/Backend.run.xml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<component name="ProjectRunConfigurationManager">
2+
<configuration default="false" name="Backend" type="Python.FlaskServer">
3+
<option name="application" value="application" />
4+
<option name="flaskDebug" value="true" />
5+
<module name="code-challenge" />
6+
<option name="target" value="application" />
7+
<option name="targetType" value="PYTHON" />
8+
<option name="INTERPRETER_OPTIONS" value="" />
9+
<option name="PARENT_ENVS" value="true" />
10+
<option name="SDK_HOME" value="C:\Users\minic\.virtualenvs\code-challenge-jkXXyclf\Scripts\python.exe" />
11+
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
12+
<option name="IS_MODULE_SDK" value="true" />
13+
<option name="ADD_CONTENT_ROOTS" value="true" />
14+
<option name="ADD_SOURCE_ROOTS" value="true" />
15+
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
16+
<EXTENSION ID="net.ashald.envfile">
17+
<option name="IS_ENABLED" value="false" />
18+
<option name="IS_SUBST" value="false" />
19+
<option name="IS_PATH_MACRO_SUPPORTED" value="false" />
20+
<option name="IS_IGNORE_MISSING_FILES" value="false" />
21+
<option name="IS_ENABLE_EXPERIMENTAL_INTEGRATIONS" value="false" />
22+
<ENTRIES>
23+
<ENTRY IS_ENABLED="true" PARSER="runconfig" />
24+
</ENTRIES>
25+
</EXTENSION>
26+
<option name="launchJavascriptDebuger" value="false" />
27+
<method v="2" />
28+
</configuration>
29+
</component>

.run/Frontend Debugger.run.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<component name="ProjectRunConfigurationManager">
2+
<configuration default="false" name="Frontend Debugger" type="JavascriptDebugType" uri="http://localhost:8080/">
3+
<method v="2" />
4+
</configuration>
5+
</component>

.run/flask db run-import.run.xml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<component name="ProjectRunConfigurationManager">
2+
<configuration default="false" name="flask db run-import" type="PythonConfigurationType" factoryName="Python">
3+
<module name="code-challenge" />
4+
<option name="INTERPRETER_OPTIONS" value="" />
5+
<option name="PARENT_ENVS" value="true" />
6+
<envs>
7+
<env name="PYTHONUNBUFFERED" value="1" />
8+
<env name="FLASK_DEBUG" value="1" />
9+
<env name="FLASK_ENV" value="development" />
10+
<env name="FLASK_APP" value="application.py" />
11+
</envs>
12+
<option name="SDK_HOME" value="C:\Users\minic\.virtualenvs\code-challenge-jkXXyclf\Scripts\python.exe" />
13+
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
14+
<option name="IS_MODULE_SDK" value="false" />
15+
<option name="ADD_CONTENT_ROOTS" value="true" />
16+
<option name="ADD_SOURCE_ROOTS" value="true" />
17+
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
18+
<EXTENSION ID="net.ashald.envfile">
19+
<option name="IS_ENABLED" value="false" />
20+
<option name="IS_SUBST" value="false" />
21+
<option name="IS_PATH_MACRO_SUPPORTED" value="false" />
22+
<option name="IS_IGNORE_MISSING_FILES" value="false" />
23+
<option name="IS_ENABLE_EXPERIMENTAL_INTEGRATIONS" value="false" />
24+
<ENTRIES>
25+
<ENTRY IS_ENABLED="true" PARSER="runconfig" />
26+
</ENTRIES>
27+
</EXTENSION>
28+
<option name="SCRIPT_NAME" value="flask" />
29+
<option name="PARAMETERS" value="db run-import 1235" />
30+
<option name="SHOW_COMMAND_LINE" value="false" />
31+
<option name="EMULATE_TERMINAL" value="false" />
32+
<option name="MODULE_MODE" value="true" />
33+
<option name="REDIRECT_INPUT" value="false" />
34+
<option name="INPUT_FILE" value="" />
35+
<method v="2" />
36+
</configuration>
37+
</component>

.run/flask q sync.run.xml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<component name="ProjectRunConfigurationManager">
2+
<configuration default="false" name="flask q sync" type="PythonConfigurationType" factoryName="Python">
3+
<module name="code-challenge" />
4+
<option name="INTERPRETER_OPTIONS" value="" />
5+
<option name="PARENT_ENVS" value="true" />
6+
<envs>
7+
<env name="PYTHONUNBUFFERED" value="1" />
8+
<env name="FLASK_DEBUG" value="1" />
9+
<env name="FLASK_ENV" value="development" />
10+
<env name="FLASK_APP" value="application.py" />
11+
</envs>
12+
<option name="SDK_HOME" value="C:\Users\minic\.virtualenvs\code-challenge-jkXXyclf\Scripts\python.exe" />
13+
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
14+
<option name="IS_MODULE_SDK" value="false" />
15+
<option name="ADD_CONTENT_ROOTS" value="true" />
16+
<option name="ADD_SOURCE_ROOTS" value="true" />
17+
<EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
18+
<EXTENSION ID="net.ashald.envfile">
19+
<option name="IS_ENABLED" value="false" />
20+
<option name="IS_SUBST" value="false" />
21+
<option name="IS_PATH_MACRO_SUPPORTED" value="false" />
22+
<option name="IS_IGNORE_MISSING_FILES" value="false" />
23+
<option name="IS_ENABLE_EXPERIMENTAL_INTEGRATIONS" value="false" />
24+
<ENTRIES>
25+
<ENTRY IS_ENABLED="true" PARSER="runconfig" />
26+
</ENTRIES>
27+
</EXTENSION>
28+
<option name="SCRIPT_NAME" value="flask" />
29+
<option name="PARAMETERS" value="q sync" />
30+
<option name="SHOW_COMMAND_LINE" value="false" />
31+
<option name="EMULATE_TERMINAL" value="false" />
32+
<option name="MODULE_MODE" value="true" />
33+
<option name="REDIRECT_INPUT" value="false" />
34+
<option name="INPUT_FILE" value="" />
35+
<method v="2" />
36+
</configuration>
37+
</component>

.run/pytest in code-challenge.run.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<component name="ProjectRunConfigurationManager">
2-
<configuration default="false" name="pytest in code-challenge" type="tests" factoryName="py.test" nameIsGenerated="true">
2+
<configuration default="false" name="pytest" type="tests" factoryName="py.test">
33
<module name="code-challenge" />
44
<option name="INTERPRETER_OPTIONS" value="" />
55
<option name="PARENT_ENVS" value="true" />

CodeChallenge/__init__.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
import sentry_sdk
55
from flask import Flask, jsonify, make_response, send_from_directory, redirect
6+
67
# from flask_cors import CORS
78
from sentry_sdk.integrations.flask import FlaskIntegration
89
from werkzeug.middleware.proxy_fix import ProxyFix
@@ -35,10 +36,7 @@ def create_app(config):
3536
"""Initialize the core application."""
3637
sentry_dsn = os.getenv("SENTRY_DSN")
3738
if sentry_dsn:
38-
sentry_sdk.init(
39-
dsn=sentry_dsn,
40-
integrations=[FlaskIntegration()]
41-
)
39+
sentry_sdk.init(dsn=sentry_dsn, integrations=[FlaskIntegration()])
4240

4341
app = Flask(__name__)
4442

@@ -72,9 +70,9 @@ def create_app(config):
7270
@app.errorhandler(429)
7371
def ratelimit_handler(e):
7472
return make_response(
75-
jsonify(
76-
status="error",
77-
reason=f"rate limit exceeded ({e.description})"), 429)
73+
jsonify(status="error", reason=f"rate limit exceeded ({e.description})"),
74+
429,
75+
)
7876

7977
"""
8078
@app.route("/", defaults={"path": ""})

CodeChallenge/api/eb.py

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,19 +25,22 @@ def worker():
2525
except (TypeError, KeyError):
2626
return "", 400
2727

28-
if not compare_digest(password,
29-
current_app.config["WORKER_PASSWORD"]):
28+
if not compare_digest(password, current_app.config["WORKER_PASSWORD"]):
3029
return "", 401
3130

3231
# send daily reminder emails only while challenge is active, up until the first day of the final challenge
3332
if 1 <= core.day_number() <= core.max_rank():
34-
msg = Message("New code challenge question is unlocked!",
35-
sender=current_app.config["MAIL_DEFAULT_SENDER"],
36-
recipients=[current_app.config["MG_LIST"]])
37-
38-
msg.html = render_template("challenge_daily_email.html",
39-
name="%recipient_fname%",
40-
external_url=current_app.config["EXTERNAL_URL"])
33+
msg = Message(
34+
"New code challenge question is unlocked!",
35+
sender=current_app.config["MAIL_DEFAULT_SENDER"],
36+
recipients=[current_app.config["MG_LIST"]],
37+
)
38+
39+
msg.html = render_template(
40+
"challenge_daily_email.html",
41+
name="%recipient_fname%",
42+
external_url=current_app.config["EXTERNAL_URL"],
43+
)
4144
msg.extra_headers = {"List-Unsubscribe": "%unsubscribe_email%"}
4245

4346
mail.send(msg)

0 commit comments

Comments
 (0)