Skip to content

Commit

Permalink
Implement Visit REST Endpoints (POST) (#240)
Browse files Browse the repository at this point in the history
* Create visit.py

* Run linter and instantiate visit.py

* Implement GET visits endpoints

* Stylistic changes

* Run linter

* Make requested changes

* Made create_visit first draft

* Run linter

* Fixed error message for security

* Fixed error message for security

---------

Co-authored-by: Vaaranan Yogalingam <[email protected]>
Co-authored-by: Vaaranan Yogalingam <[email protected]>
  • Loading branch information
3 people authored May 17, 2024
1 parent d66ff19 commit e80d4c0
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 1 deletion.
52 changes: 52 additions & 0 deletions backend/python/app/rest/visit.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,65 @@
from ..resources.visit_dto import VisitDTO
from ..services.implementations.attendance_record_service import AttendanceRecordService
from ..services.implementations.attendance_sheet_service import AttendanceSheetService
from ..services.implementations.transport_method_service import (
TransportationMethodService,
)

attendance_sheet_service = AttendanceSheetService(current_app.logger)
attendance_record_service = AttendanceRecordService(current_app.logger)
transport_method_service = TransportationMethodService(current_app.logger)

blueprint = Blueprint("visit", __name__, url_prefix="/visit")


# create a visit in db
@blueprint.route("/", methods=["POST"], strict_slashes=False)
# @require_authorization_by_role({"Admin", "User"})
@validate_request("VisitDTO")
def create_visit():
try:
attendance_sheet = {
"intake_id": request.json["intake_id"],
"children": request.json["childInformation"]["children"],
"family_name": request.json["childInformation"]["familyName"],
"csw": request.json["childInformation"]["childServiceWorker"],
"cpw": request.json["childInformation"]["childProtectionWorker"],
"fcc": request.json["childInformation"]["fosterCareCoordinator"],
}
attendance_sheet = CreateAttendanceSheetDTO(**attendance_sheet)

attendance_record = {
# "id": request.json["user_id"],
"attendance_sheet_id": 1,
"attendance": "PRESENT", # update
"attending_family": "MOM", # update
"date": request.json["visitTimestamp"]["visitDate"],
"supervision": request.json["visitTimestamp"]["visitSupervision"],
"start_time": request.json["visitTimestamp"]["startTime"],
"end_time": request.json["visitTimestamp"]["endTime"],
"location": request.json["visitTimestamp"]["location"],
"comments": request.json["notes"],
"child_family_support_worker_id": request.json[
"childAndFamilySupportWorker"
],
"user": request.json["user_id"],
}
attendance_record = CreateAttendanceRecordsDTO(**attendance_record)

# new_attendance_sheet = attendance_sheet_service.create_attendance_sheet(
# attendance_sheet
# )
new_attendance_record = attendance_record_service.create_attendance_record(
attendance_record
)
# new_visit = [attendance_sheet, attendance_record]
new_visit = attendance_record

return jsonify(new_visit.__dict__), 201
except Exception as error:
return jsonify("Bad Request: The server cannot process your request."), 400


# get all visits
@blueprint.route("/", methods=["GET"], strict_slashes=False)
# @require_authorization_by_role({"Admin"})
Expand Down
4 changes: 3 additions & 1 deletion backend/python/tools/db_seed.py
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ def insert_test_data():
insert_values(db, "providers", ("name", "file_number", "primary_phone_number", "secondary_phone_number", "email", "address", "relationship_to_child", "additional_contact_notes", "child_id"), value)

# Attendance Sheets
values = [(1, 'Zhang', 'csw', 'cpw', 'fcc')]
values = [(1, 'Zhang', 'csw', 'cpw', 'fcc'), (2, 2, 'Wang', 'a', 'b', 'c')]
for value in values:
insert_values(db, "attendance_sheets", ("intake_id", "family_name", "csw", "cpw", "fcc"), value)

Expand Down Expand Up @@ -168,6 +168,8 @@ def clear_rows():
db.engine.execute("TRUNCATE TABLE goals RESTART IDENTITY CASCADE")
db.engine.execute("TRUNCATE TABLE intakes RESTART IDENTITY CASCADE")
db.engine.execute("TRUNCATE TABLE users RESTART IDENTITY CASCADE")
db.engine.execute("TRUNCATE TABLE attendance_sheets RESTART IDENTITY CASCADE")
db.engine.execute("TRUNCATE TABLE attendance_records RESTART IDENTITY CASCADE")

# fmt: on

Expand Down

0 comments on commit e80d4c0

Please sign in to comment.