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

Feature/fixvips #205

Merged
merged 4 commits into from
Nov 23, 2023
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
6 changes: 3 additions & 3 deletions mock_services/all_mock_svc/routes.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,14 +95,14 @@ def contravention():
}
}), 404)

@application.route('/digitalforms-viirp/v1/documents/CreateDocument', methods=['POST'])
@application.route('/digitalforms-viirp/v1/documents/<correlation_id>', methods=['POST'])
@basic_auth_required
def vipsdoc():
if request.method == 'POST':
logging.debug('request: {}'.format(request.json))
try:
doc = {
"documentId": "123"
"document_id": "123"
}
return make_response(jsonify(doc), 200)
except Exception as e:
Expand All @@ -116,7 +116,7 @@ def vipsdoc():
}
}), 404)

@application.route('/digitalforms-viirp/v1/impoundments/CreateImpoundment', methods=['POST'])
@application.route('/digitalforms-viirp/v1/impoundments/<correlation_id>', methods=['POST'])
@basic_auth_required
def vipsimp():
if request.method == 'POST':
Expand Down
37 changes: 31 additions & 6 deletions python/form_handler/actions.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
from datetime import datetime
from minio import Minio
from minio.error import S3Error
from python.form_handler.models import Event,FormStorageRefs,VIForm,TwentyFourHourForm,TwelveHourForm,IRPForm,User
from python.form_handler.models import Event,FormStorageRefs,VIForm,TwentyFourHourForm,TwelveHourForm,IRPForm,User,AgencyCrossref
from python.form_handler.icbc_service import submit_to_icbc
from python.form_handler.vips_service import create_vips_doc,create_vips_imp
from python.form_handler.payloads import vips_payload,vips_document_payload
Expand Down Expand Up @@ -423,7 +423,8 @@ def send_to_icbc(**args)->tuple:
# "type_code": "MV2721",
# "mime_sub_type": "pdf",
# "mime_type": "application",
# "file_object": "JVBERi0xLjIgCjkgMCBvYmoKPDwKPj4Kc3RyZWFtCkJULyA5IFRmKFRlc3QpJyBFVAplbmRzdHJlYW0KZW5kb2JqCjQgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL1BhcmVudCA1IDAgUgovQ29udGVudHMgOSAwIFIKPj4KZW5kb2JqCjUgMCBvYmoKPDwKL0tpZHMgWzQgMCBSIF0KL0NvdW50IDEKL1R5cGUgL1BhZ2VzCi9NZWRpYUJveCBbIDAgMCA5OSA5IF0KPj4KZW5kb2JqCjMgMCBvYmoKPDwKL1BhZ2VzIDUgMCBSCi9UeXBlIC9DYXRhbG9nCj4+CmVuZG9iagp0cmFpbGVyCjw8Ci9Sb290IDMgMCBSCj4+CiUlRU9G",
# "file_object": "

# "notice_type_code": "IMP",
# "notice_subject_code": "VEHI",
# "pageCount": 1
Expand Down Expand Up @@ -504,6 +505,27 @@ def prep_vips_payload(**args)->tuple:
tmp_payload=vips_payload.copy()
logging.debug(tmp_payload)

# get data from db
application = args.get('app')
db = args.get('db')
with application.app_context():
# get detachment data
policeDetatchmentId=''
agency_name=''
if "agency" in user_data:
agency_name=user_data["agency"].upper()
agency_data = db.session.query(AgencyCrossref) \
.filter(AgencyCrossref.agency_name == agency_name) \
.all()
if len(agency_data) == 0:
pass
else:
for a in agency_data:
agency_dict = a.__dict__
agency_dict.pop('_sa_instance_state', None)
policeDetatchmentId=agency_dict["vips_policedetachments_agency_id"]
break

# vipsImpoundCreate payload
if "driver_jurisdiction" in event_data: tmp_payload["vipsImpoundCreate"]["dlJurisdictionCd"]=event_data["driver_jurisdiction"]
if "driver_licence_no" in event_data: tmp_payload["vipsImpoundCreate"]["driverLicenceNo"]=event_data["driver_licence_no"]
Expand All @@ -519,7 +541,8 @@ def prep_vips_payload(**args)->tuple:
tmp_payload["vipsImpoundCreate"]["noticeSubjectCd"]="VEHI"

if "notice_type_cd" in form_data: tmp_payload["vipsImpoundCreate"]["noticeTypeCd"]="IMP"
if "agency" in user_data: tmp_payload["vipsImpoundCreate"]["policeDetatchmentId"]=user_data["agency"].upper()
tmp_payload["vipsImpoundCreate"]["policeDetatchmentId"]=policeDetatchmentId
# if "agency" in user_data: tmp_payload["vipsImpoundCreate"]["policeDetatchmentId"]=user_data["agency"].upper()


officer_name=f'{user_data["first_name"]} {user_data["last_name"]}'
Expand Down Expand Up @@ -581,7 +604,8 @@ def prep_vips_payload(**args)->tuple:

# vipsVehicleCreate payload
# TODO: to confirm
if "nsc_no" in event_data: tmp_payload["vipsVehicleCreate"]["commercialMotorCarrierId"]=event_data["nsc_no"]
# if "nsc_no" in event_data: tmp_payload["vipsVehicleCreate"]["commercialMotorCarrierId"]=event_data["nsc_no"]
tmp_payload["vipsVehicleCreate"]["commercialMotorCarrierId"]=None

if "vehicle_plate_no" in event_data: tmp_payload["vipsVehicleCreate"]["licencePlateNo"]=event_data["vehicle_plate_no"].upper()
tmp_payload["vipsVehicleCreate"]["lpDecalValidYy"]=None
Expand All @@ -592,7 +616,8 @@ def prep_vips_payload(**args)->tuple:

if "vehicle_year" in event_data: tmp_payload["vipsVehicleCreate"]["manufacturedYy"]=event_data["vehicle_year"]

if "nsc_prov_state" in event_data: tmp_payload["vipsVehicleCreate"]["nscJurisdictionTxt"]=event_data["nsc_prov_state"].upper()
# if "nsc_prov_state" in event_data: tmp_payload["vipsVehicleCreate"]["nscJurisdictionTxt"]=event_data["nsc_prov_state"].upper()
tmp_payload["vipsVehicleCreate"]["nscJurisdictionTxt"]=None
if "vehicle_colour" in event_data: tmp_payload["vipsVehicleCreate"]["vehicleColourTxt"]=event_data["vehicle_colour"].upper()

if "vehicle_vin_no" in event_data: tmp_payload["vipsVehicleCreate"]["vehicleIdentificationNo"]=event_data["vehicle_vin_no"].upper()
Expand All @@ -614,7 +639,7 @@ def prep_vips_payload(**args)->tuple:

# vipsImpoundmentArray payload
vipsImpoundmentArray=[]
if "VI_number" in form_data: vipsImpoundmentArray.append(form_data["VI_number"])
# if "VI_number" in form_data: vipsImpoundmentArray.append(form_data["VI_number"])
tmp_payload["vipsImpoundmentArray"]=vipsImpoundmentArray

args['vips_payload']=tmp_payload
Expand Down
29 changes: 28 additions & 1 deletion python/form_handler/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -380,7 +380,7 @@ class Event(db.Model):
vehicle_year = db.Column(db.String)
vehicle_mk_md = db.Column(db.String)
vehicle_style = db.Column(db.String)
vehicle_type = db.Column(db.Integer)
vehicle_type = db.Column(db.Integer, db.ForeignKey('vehicle_type.type_cd'))
vehicle_colour = db.Column(db.String)
vehicle_vin_no = db.Column(db.String)
nsc_prov_state = db.Column(db.String)
Expand Down Expand Up @@ -563,6 +563,7 @@ class VIForm(db.Model):
out_of_province_dl: str
out_of_province_dl_number: str
out_of_province_dl_expiry: str
out_of_province_dl_jurisdiction: str
date_of_impound: datetime
irp_impound: str
irp_impound_duration: str
Expand Down Expand Up @@ -601,6 +602,7 @@ class VIForm(db.Model):
out_of_province_dl = db.Column(db.String)
out_of_province_dl_number = db.Column(db.String)
out_of_province_dl_expiry = db.Column(db.String)
out_of_province_dl_jurisdiction = db.Column(db.String)
date_of_impound = db.Column(db.DateTime)
irp_impound = db.Column(db.String)
irp_impound_duration = db.Column(db.String)
Expand Down Expand Up @@ -659,3 +661,28 @@ class FormStorageRefs(db.Model):
encryptiv = db.Column(db.String)
created_dt = db.Column(db.DateTime)
updated_dt = db.Column(db.DateTime)



@dataclass
class AgencyCrossref(db.Model):
__tablename__ = 'agency_cross_refs'

agency_name: str
agency_id: str
agency_city: str
prime_vjur: str
icbc_detachment_name: str
icbc_city_name: str
vips_policedetachments_agency_id: str
vips_policedetachments_agency_nm: str

agency_name = db.Column(db.String, primary_key=True)
agency_id = db.Column(db.String)
agency_city = db.Column(db.String)
prime_vjur = db.Column(db.String)
icbc_detachment_name = db.Column(db.String)
icbc_city_name = db.Column(db.String)
vips_policedetachments_agency_id = db.Column(db.String)
vips_policedetachments_agency_nm = db.Column(db.String)

38 changes: 38 additions & 0 deletions python/prohibition_web_svc/migrations/versions/f76bbde02978_.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
"""empty message

Revision ID: f76bbde02978
Revises: 0134c884845f
Create Date: 2023-11-22 20:03:25.778970

"""
from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision = 'f76bbde02978'
down_revision = '0134c884845f'
branch_labels = None
depends_on = None


def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.create_table('agency_cross_refs',
sa.Column('agency_name', sa.String(), nullable=False),
sa.Column('agency_id', sa.String(), nullable=True),
sa.Column('agency_city', sa.String(), nullable=True),
sa.Column('prime_vjur', sa.String(), nullable=True),
sa.Column('icbc_detachment_name', sa.String(), nullable=True),
sa.Column('icbc_city_name', sa.String(), nullable=True),
sa.Column('vips_policedetachments_agency_id', sa.String(), nullable=True),
sa.Column('vips_policedetachments_agency_nm', sa.String(), nullable=True),
sa.PrimaryKeyConstraint('agency_name')
)
# ### end Alembic commands ###


def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_table('agency_cross_refs')
# ### end Alembic commands ###
25 changes: 25 additions & 0 deletions python/prohibition_web_svc/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -661,3 +661,28 @@ class FormStorageRefs(db.Model):
encryptiv = db.Column(db.String)
created_dt = db.Column(db.DateTime)
updated_dt = db.Column(db.DateTime)



@dataclass
class AgencyCrossref(db.Model):
__tablename__ = 'agency_cross_refs'

agency_name: str
agency_id: str
agency_city: str
prime_vjur: str
icbc_detachment_name: str
icbc_city_name: str
vips_policedetachments_agency_id: str
vips_policedetachments_agency_nm: str

agency_name = db.Column(db.String, primary_key=True)
agency_id = db.Column(db.String)
agency_city = db.Column(db.String)
prime_vjur = db.Column(db.String)
icbc_detachment_name = db.Column(db.String)
icbc_city_name = db.Column(db.String)
vips_policedetachments_agency_id = db.Column(db.String)
vips_policedetachments_agency_nm = db.Column(db.String)

63 changes: 51 additions & 12 deletions python/task_scheduler/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,14 @@
db = SQLAlchemy()
migrate = Migrate()


@dataclass
class Form(db.Model):
id: str
form_type: str
lease_expiry: datetime
printed_timestamp: datetime
user_guid: str

id = db.Column('id', db.String(20), primary_key=True)
form_type = db.Column(db.String(20), nullable=False)
lease_expiry = db.Column(db.Date, nullable=True)
Expand All @@ -25,16 +31,6 @@ def __init__(self, form_id, form_type, printed=None, lease_expiry=None, user_gui
self.lease_expiry = lease_expiry
self.user_guid = user_guid

@staticmethod
def serialize(form):
return {
"id": form.id,
"form_type": form.form_type,
"lease_expiry": Form._format_lease_expiry(form.lease_expiry),
"printed_timestamp": form.printed_timestamp,
"user_guid": form.user_guid
}

def lease(self, user_guid):
today = datetime.now()
lease_expiry = today + timedelta(days=30)
Expand Down Expand Up @@ -155,7 +151,7 @@ def get_roles(user_guid):
return UserRole.collection_to_list_roles(rows)


@dataclass
@dataclass
class Agency(db.Model):
__tablename__ = 'agency'

Expand Down Expand Up @@ -259,6 +255,16 @@ class VehicleStyle(db.Model):

code = db.Column(db.String, primary_key=True)
name = db.Column(db.String)

@dataclass
class VehicleType(db.Model):
__tablename__ = 'vehicle_type'

type_cd: int
description: str

type_cd = db.Column(db.Integer, primary_key=True)
description = db.Column(db.String)


@dataclass
Expand Down Expand Up @@ -316,6 +322,7 @@ class Event(db.Model):
vehicle_year: str
vehicle_mk_md: str
vehicle_style: str
vehicle_type: int
vehicle_colour: str
vehicle_vin_no: str
nsc_prov_state: str
Expand Down Expand Up @@ -373,6 +380,7 @@ class Event(db.Model):
vehicle_year = db.Column(db.String)
vehicle_mk_md = db.Column(db.String)
vehicle_style = db.Column(db.String)
vehicle_type = db.Column(db.Integer, db.ForeignKey('vehicle_type.type_cd'))
vehicle_colour = db.Column(db.String)
vehicle_vin_no = db.Column(db.String)
nsc_prov_state = db.Column(db.String)
Expand Down Expand Up @@ -464,6 +472,7 @@ class TwentyFourHourForm(db.Model):
admission_by_driver: bool
independent_witness: bool
reasonable_ground_other: bool
twenty_four_hour_number: str
created_dt: datetime
updated_dt: datetime

Expand Down Expand Up @@ -498,6 +507,7 @@ class TwentyFourHourForm(db.Model):
admission_by_driver = db.Column(db.Boolean)
independent_witness = db.Column(db.Boolean)
reasonable_ground_other = db.Column(db.Boolean)
twenty_four_hour_number = db.Column(db.String)
created_dt = db.Column(db.DateTime)
updated_dt = db.Column(db.DateTime)

Expand All @@ -511,12 +521,14 @@ class TwelveHourForm(db.Model):
created_dt: datetime
updated_dt: datetime
driver_phone: str
twelve_hour_number: str

form_id = db.Column(db.Integer, primary_key=True)
event_id = db.Column(db.Integer, db.ForeignKey('event.event_id'))
created_dt = db.Column(db.DateTime)
updated_dt = db.Column(db.DateTime)
driver_phone = db.Column(db.String)
twelve_hour_number = db.Column(db.String)


@dataclass
Expand Down Expand Up @@ -551,6 +563,7 @@ class VIForm(db.Model):
out_of_province_dl: str
out_of_province_dl_number: str
out_of_province_dl_expiry: str
out_of_province_dl_jurisdiction: str
date_of_impound: datetime
irp_impound: str
irp_impound_duration: str
Expand Down Expand Up @@ -589,6 +602,7 @@ class VIForm(db.Model):
out_of_province_dl = db.Column(db.String)
out_of_province_dl_number = db.Column(db.String)
out_of_province_dl_expiry = db.Column(db.String)
out_of_province_dl_jurisdiction = db.Column(db.String)
date_of_impound = db.Column(db.DateTime)
irp_impound = db.Column(db.String)
irp_impound_duration = db.Column(db.String)
Expand Down Expand Up @@ -647,3 +661,28 @@ class FormStorageRefs(db.Model):
encryptiv = db.Column(db.String)
created_dt = db.Column(db.DateTime)
updated_dt = db.Column(db.DateTime)



@dataclass
class AgencyCrossref(db.Model):
__tablename__ = 'agency_cross_refs'

agency_name: str
agency_id: str
agency_city: str
prime_vjur: str
icbc_detachment_name: str
icbc_city_name: str
vips_policedetachments_agency_id: str
vips_policedetachments_agency_nm: str

agency_name = db.Column(db.String, primary_key=True)
agency_id = db.Column(db.String)
agency_city = db.Column(db.String)
prime_vjur = db.Column(db.String)
icbc_detachment_name = db.Column(db.String)
icbc_city_name = db.Column(db.String)
vips_policedetachments_agency_id = db.Column(db.String)
vips_policedetachments_agency_nm = db.Column(db.String)

Loading