Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sql tuning #665

Merged
merged 5 commits into from
Dec 19, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 9 additions & 3 deletions api/app/resources/theq/citizen/citizen_add_to_queue.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,16 @@
from pprint import pprint
from flask_restx import Resource
from qsystem import api, api_call_with_retry, db, socketio, my_print, application
from app.models.theq import Citizen, CSR, Office
from app.models.theq import Citizen, CSR, Office, ServiceReq, Period
from app.models.theq import SRState
from app.schemas.theq import CitizenSchema
from app.utilities.snowplow import SnowPlow
from app.utilities.auth_util import Role, has_any_role
from app.auth.auth import jwt
from app.utilities.email import get_walkin_spot_confirmation_email_contents, send_email
from app.utilities.sms import send_walkin_spot_confirmation_sms
from sqlalchemy.orm import raiseload, joinedload
from sqlalchemy.dialects import postgresql


@api.route("/citizens/<int:id>/add_to_queue/", methods=["POST"])
Expand All @@ -36,9 +38,13 @@ class CitizenAddToQueue(Resource):
@api_call_with_retry
def post(self, id):
csr = CSR.find_by_username(g.jwt_oidc_token_info['username'])
citizen = Citizen.query.filter_by(citizen_id=id).first()
active_service_request = citizen.get_active_service_request()

citizens = Citizen.query \
.options(joinedload(Citizen.service_reqs).joinedload(ServiceReq.periods).options(raiseload(Period.sr),joinedload(Period.csr).raiseload('*')),joinedload(Citizen.office),raiseload(Citizen.user)) \
.filter_by(citizen_id=id)

citizen = citizens.first()
active_service_request = citizen.get_active_service_request()
my_print("==> POST /citizens/" + str(citizen.citizen_id) + '/add_to_queue, Ticket: ' + citizen.ticket_number)

if active_service_request is None:
Expand Down
12 changes: 10 additions & 2 deletions api/app/resources/theq/citizen/citizen_left.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,18 @@

from flask import request, g
from flask_restx import Resource
from app.models.theq.office import Office
from qsystem import api, api_call_with_retry, db, socketio, my_print
from app.models.theq import Citizen, CSR, CitizenState
from app.models.theq import Citizen, CSR, CitizenState, ServiceReq, Period, Service, Office
from app.schemas.theq import CitizenSchema, ServiceReqSchema
from app.models.theq import SRState
from datetime import datetime
from app.utilities.snowplow import SnowPlow
import os
from app.utilities.auth_util import Role, has_any_role
from app.auth.auth import jwt
from sqlalchemy.orm import raiseload, joinedload
from sqlalchemy.dialects import postgresql


@api.route("/citizens/<int:id>/citizen_left/", methods=['POST'])
Expand All @@ -39,7 +42,12 @@ def post(self, id):
my_print("++> POST API call time before csr = statement: " + str(datetime.now()))
csr = CSR.find_by_username(g.jwt_oidc_token_info['username'])
my_print(" ++> Time before citizen = statement: " + str(datetime.now()))
citizen = Citizen.query.filter_by(citizen_id=id).first()

citizen = Citizen.query\
.options(joinedload(Citizen.service_reqs).joinedload(ServiceReq.periods).options(raiseload(Period.sr),joinedload(Period.csr).raiseload('*')),joinedload(Citizen.office),raiseload(Citizen.user)) \
.filter_by(citizen_id=id)

citizen = citizen.first()

my_print(" ++> Time before citizen ID statement: " + str(datetime.now()))
citizen_id_string = self.get_citizen_string(citizen)
Expand Down
14 changes: 11 additions & 3 deletions api/app/resources/theq/citizen/citizen_place_on_hold.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,16 @@

from flask import g
from flask_restx import Resource
from app.models.theq.office import Office
from app.models.theq.service import Service
from qsystem import api, api_call_with_retry, db, socketio, my_print
from app.models.theq import Citizen, CSR
from app.models.theq import Citizen, CSR, ServiceReq, Period
from app.models.theq import SRState
from app.schemas.theq import CitizenSchema
from app.utilities.auth_util import Role, has_any_role
from app.auth.auth import jwt

from sqlalchemy.orm import raiseload, joinedload
from sqlalchemy.dialects import postgresql

@api.route("/citizens/<int:id>/place_on_hold/", methods=["POST"])
class CitizenPlaceOnHold(Resource):
Expand All @@ -32,7 +35,12 @@ class CitizenPlaceOnHold(Resource):
def post(self, id):
csr = CSR.find_by_username(g.jwt_oidc_token_info['username'])

citizen = Citizen.query.filter_by(citizen_id=id, office_id=csr.office_id).first()
citizen = Citizen.query\
.options(joinedload(Citizen.service_reqs).joinedload(ServiceReq.periods).options(raiseload(Period.sr),joinedload(Period.csr).raiseload('*')),joinedload(Citizen.office),raiseload(Citizen.user)) \
.filter_by(citizen_id=id, office_id=csr.office_id)

citizen = citizen.first()

my_print("==> POST /citizens/" + str(citizen.citizen_id) + '/place_on_hold/, Ticket: ' + citizen.ticket_number)
active_service_request = citizen.get_active_service_request()

Expand Down