Skip to content

Commit

Permalink
Merge pull request #460 from DostEducation/feature/456-upgrade-flask-…
Browse files Browse the repository at this point in the history
…package

Upgraded packages and dependecy fixes
  • Loading branch information
vivek-kumar-pandey authored Jan 11, 2024
2 parents 7b66a89 + 0c3177b commit 41b222e
Show file tree
Hide file tree
Showing 28 changed files with 123 additions and 119 deletions.
2 changes: 1 addition & 1 deletion api/helpers/db_helper.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ def get_class_by_tablename(tablename):
:param tablename: String with name of table.
:return: Class reference or None.
"""
for classObject in db.Model._decl_class_registry.values():
for classObject in db.Model.registry._class_registry.values():
if (
hasattr(classObject, "__tablename__")
and classObject.__tablename__ == tablename
Expand Down
2 changes: 1 addition & 1 deletion api/models/call_log.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from api.mixins import TimestampMixin
from api import db
from flask_sqlalchemy import BaseQuery
from flask_sqlalchemy.query import Query as BaseQuery


class CallLogQuery(BaseQuery):
Expand Down
2 changes: 1 addition & 1 deletion api/models/contact_fields_mapping.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from api import db
from flask_sqlalchemy import BaseQuery
from flask_sqlalchemy.query import Query as BaseQuery
from utils.loggingutils import logger


Expand Down
2 changes: 1 addition & 1 deletion api/models/content.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from api.mixins import TimestampMixin
from api import db
from flask_sqlalchemy import BaseQuery
from flask_sqlalchemy.query import Query as BaseQuery


class ContentQuery(BaseQuery):
Expand Down
2 changes: 1 addition & 1 deletion api/models/content_version.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from api.mixins import TimestampMixin
from api import db
from flask_sqlalchemy import BaseQuery
from flask_sqlalchemy.query import Query as BaseQuery


class ContentVersionQuery(BaseQuery):
Expand Down
2 changes: 1 addition & 1 deletion api/models/ivr_prompt.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from api.mixins import TimestampMixin
from api import db
from sqlalchemy import desc, and_, func
from flask_sqlalchemy import BaseQuery
from flask_sqlalchemy.query import Query as BaseQuery


class IvrPromptQuery(BaseQuery):
Expand Down
2 changes: 1 addition & 1 deletion api/models/ivr_prompt_mapping.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from api.mixins import TimestampMixin
from api import db
from flask_sqlalchemy import BaseQuery
from flask_sqlalchemy.query import Query as BaseQuery


class IvrPromptMappingQuery(BaseQuery):
Expand Down
2 changes: 1 addition & 1 deletion api/models/ivr_prompt_response.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from api.mixins import TimestampMixin
from api import db
from flask_sqlalchemy import BaseQuery
from flask_sqlalchemy.query import Query as BaseQuery


class IvrPromptResponseQuery(BaseQuery):
Expand Down
2 changes: 1 addition & 1 deletion api/models/language.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from api.mixins import TimestampMixin
from api import db
from flask_sqlalchemy import BaseQuery
from flask_sqlalchemy.query import Query as BaseQuery


class LanguageQuery(BaseQuery):
Expand Down
2 changes: 1 addition & 1 deletion api/models/module_content.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from api.mixins import TimestampMixin
from api import db
from flask_sqlalchemy import BaseQuery
from flask_sqlalchemy.query import Query as BaseQuery


class ModuleContentQuery(BaseQuery):
Expand Down
2 changes: 1 addition & 1 deletion api/models/partner_system_phone.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from api.mixins import TimestampMixin
from api import db
from flask_sqlalchemy import BaseQuery
from flask_sqlalchemy.query import Query as BaseQuery


class PartnerSystemPhoneQuery(BaseQuery):
Expand Down
2 changes: 1 addition & 1 deletion api/models/program_module.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from api.mixins import TimestampMixin
from api import db
from flask_sqlalchemy import BaseQuery
from flask_sqlalchemy.query import Query as BaseQuery


class ProgramModuleQuery(BaseQuery):
Expand Down
2 changes: 1 addition & 1 deletion api/models/program_sequence.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from api.mixins import TimestampMixin
from api import db
from flask_sqlalchemy import BaseQuery
from flask_sqlalchemy.query import Query as BaseQuery


class ProgramSequenceQuery(BaseQuery):
Expand Down
2 changes: 1 addition & 1 deletion api/models/registration.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from api.mixins import TimestampMixin
from api import db
from flask_sqlalchemy import BaseQuery
from flask_sqlalchemy.query import Query as BaseQuery


class RegistrationQuery(BaseQuery):
Expand Down
2 changes: 1 addition & 1 deletion api/models/system_phone.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from api.mixins import TimestampMixin
from api import db
from flask_sqlalchemy import BaseQuery
from flask_sqlalchemy.query import Query as BaseQuery


class SystemPhoneQuery(BaseQuery):
Expand Down
2 changes: 1 addition & 1 deletion api/models/user.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from api.mixins import TimestampMixin
from api import db
from flask_sqlalchemy import BaseQuery
from flask_sqlalchemy.query import Query as BaseQuery


class UserQuery(BaseQuery):
Expand Down
2 changes: 1 addition & 1 deletion api/models/user_custom_fields.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from api.mixins import TimestampMixin
from api import db
from flask_sqlalchemy import BaseQuery
from flask_sqlalchemy.query import Query as BaseQuery
from sqlalchemy import and_


Expand Down
2 changes: 1 addition & 1 deletion api/models/user_group.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from api.mixins import TimestampMixin
from api import db
from flask_sqlalchemy import BaseQuery
from flask_sqlalchemy.query import Query as BaseQuery
from sqlalchemy import desc, and_


Expand Down
2 changes: 1 addition & 1 deletion api/models/user_program.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from api.mixins import TimestampMixin
from api import db, app
from flask_sqlalchemy import BaseQuery
from flask_sqlalchemy.query import Query as BaseQuery
from api.helpers import common_helper, db_helper
from utils.loggingutils import logger

Expand Down
2 changes: 1 addition & 1 deletion api/models/webhook_transaction_log.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from api.mixins import TimestampMixin
from api import db
from flask_sqlalchemy import BaseQuery
from flask_sqlalchemy.query import Query as BaseQuery


class WebhookTransactionLogQuery(BaseQuery):
Expand Down
3 changes: 2 additions & 1 deletion api/services/prompt_service.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
# This file is treated as service layer
from api import models, db
from api import db
from datetime import datetime
from api.helpers import prompt_helper, common_helper, db_helper
from utils.loggingutils import logger
from api import models


class PromptService:
Expand Down
1 change: 0 additions & 1 deletion config.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@
if github_action_db_url:
SQLALCHEMY_DATABASE_URI = github_action_db_url

SQLALCHEMY_TRACK_MODIFICATIONS = True
WTF_CSRF_ENABLED = True
SECRET_KEY = os.environ.get("SECRET_KEY")

Expand Down
56 changes: 28 additions & 28 deletions main.py
Original file line number Diff line number Diff line change
@@ -1,37 +1,37 @@
from api import services, models
from flask import jsonify
from api.helpers import db_helper
from api import app, helpers, services, models
from utils.loggingutils import logger
import json

user_program_service = services.UserProgramService()

### Endpoint for Cloud function
def webhook(request):
try:
if request.method == "POST":
try:
jsonData = request.get_json()
except Exception as e:
logger.warning(
f"[WARN] Could not retrieve JSON data from the request. Error:{e}"
)
return jsonify(message="Something went wrong!"), 400

if jsonData.get("flow_category", None) == "dry_flow":
handle_dry_flow(jsonData)
else:
handle_regular_flow(jsonData)
return jsonify(message="Success"), 200

logger.warning("[WARN] Received a GET request instead of POST")
return (
jsonify(message="Currently, the system does not accept a GET request"),
405,
)
except Exception as e:
logger.error(f"An unexpected error occurred. Error message: {e}")
return jsonify(message="Internal server error"), 500
with app.app_context():
try:
if request.method == "POST":
try:
jsonData = request.get_json()
except Exception as e:
logger.warning(
f"[WARN] Could not retrieve JSON data from the request. Error:{e}"
)
return jsonify(message="Something went wrong!"), 400

if jsonData.get("flow_category", None) == "dry_flow":
handle_dry_flow(jsonData)
else:
handle_regular_flow(jsonData)
return jsonify(message="Success"), 200

logger.warning("[WARN] Received a GET request instead of POST")
return (
jsonify(message="Currently, the system does not accept a GET request"),
405,
)
except Exception as e:
logger.error(f"An unexpected error occurred. Error message: {e}")
return jsonify(message="Internal server error"), 500


def handle_dry_flow(jsonData):
Expand Down Expand Up @@ -77,7 +77,7 @@ def retry_failed_webhook(transaction_log_service):

for log in failed_webhook_logs:
log.attempts += 1
db_helper.save(log)
helpers.db_helper.save(log)

json_data = json.loads(log.payload)
json_data["log_created_on"] = log.created_on
Expand All @@ -86,7 +86,7 @@ def retry_failed_webhook(transaction_log_service):
continue

log.processed = True
db_helper.save(log)
helpers.db_helper.save(log)


def handle_payload(jsonData):
Expand Down
7 changes: 3 additions & 4 deletions manage.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
from __future__ import absolute_import
from api import db, app
from api.models import *

from flask_migrate import Migrate
from flask_script import Manager
from flask.cli import FlaskGroup

migrate = Migrate(app, db)
manager = Manager(app)
cli = FlaskGroup(app)

if __name__ == "__main__":
manager.run()
cli()
1 change: 0 additions & 1 deletion requirements-dev.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
# Includes dev dependencies on top of requirements.txt
-r requirements.txt
functions-framework==2.1.2
flake8==3.8.4
flake8-polyfill==1.0.2
pep8-naming==0.10.0
Expand Down
23 changes: 13 additions & 10 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,24 +1,27 @@
certifi==2020.12.5
chardet==4.0.0
click==7.1.2
Flask==1.1.2
click==8.1.3
Flask==3.0.0
requests==2.25.1
python-dotenv==0.15.0
Flask-SQLAlchemy==2.1
Flask-SQLAlchemy==3.1.1
functions-framework==3.5.0
greenlet==3.0.3
idna==2.10
itsdangerous==1.1.0
Jinja2==2.11.3
MarkupSafe==1.1.1
psycopg2==2.8.6
itsdangerous==2.1.2
Jinja2==3.1.2
MarkupSafe==2.1.1
psycopg2==2.9.9
python-dotenv==0.15.0
requests==2.25.1
SQLAlchemy==1.3.23
SQLAlchemy==2.0.23
urllib3==1.26.3
Werkzeug==1.0.1
Werkzeug==3.0.0
google-cloud-logging==3.5.0
Flask-Migrate==2.1.1
Flask-Migrate==4.0.5
Flask-Script==2.0.6
pytest==7.4.3
faker==20.1.0
setuptools==68.2.2
pytest-cov==4.0.0
watchdog==3.0.0
22 changes: 11 additions & 11 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,21 +27,21 @@ def client(app):

@pytest.fixture(scope="session")
def db():
db = SQLAlchemy(flask_app)
db.init_app(flask_app)
db = SQLAlchemy()

return db


@pytest.fixture(scope="session")
def setup_test_environment(db):
# Creating tables.
try:
os.system("flask db downgrade 31955a9b7348")
os.system("flask db downgrade")
os.system("flask db upgrade")
except:
os.system("flask db upgrade")

# Loading pre-filled data for running tests.
testing_seeder.main()
with flask_app.app_context():
try:
os.system("flask db downgrade 31955a9b7348")
os.system("flask db downgrade")
os.system("flask db upgrade")
except:
os.system("flask db upgrade")

# Loading pre-filled data for running tests.
testing_seeder.main()
Loading

1 comment on commit 41b222e

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Coverage

Tests Skipped Failures Errors Time
3 0 💤 0 ❌ 0 🔥 1.203s ⏱️

Please sign in to comment.