Skip to content

Commit 8db4b50

Browse files
authored
Merge branch 'master' into access-token
2 parents c8d49bd + fd24287 commit 8db4b50

File tree

5 files changed

+38
-42
lines changed

5 files changed

+38
-42
lines changed

app/app.py

Lines changed: 34 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -374,8 +374,9 @@ def update_citizen_db():
374374

375375
citizen_id = request.values['citizen_id']
376376
vaccine_name = request.values['vaccine_name']
377+
option = request.values['option']
377378

378-
if not (citizen_id and vaccine_name):
379+
if not (citizen_id and vaccine_name and option):
379380
logger.error(REPORT_FEEDBACK["missing_key"])
380381
return {"feedback": REPORT_FEEDBACK["missing_key"]}
381382

@@ -391,32 +392,29 @@ def update_citizen_db():
391392
logger.error(REPORT_FEEDBACK["invalid_vaccine"])
392393
return {"feedback": REPORT_FEEDBACK["invalid_vaccine"]}
393394

394-
try:
395-
option = request.values['option']
396-
if (option == "walk-in"):
397-
if is_reserved(citizen_id):
398-
logger.error(REPORT_FEEDBACK["has_reservation"])
399-
return {"feedback": REPORT_FEEDBACK["has_reservation"]}
400-
401-
try:
402-
citizen = get_citizen(citizen_id)
403-
is_valid, feedback = validate_vaccine(citizen, vaccine_name)
404-
405-
if not is_valid:
406-
logger.error("{} - {}".format(citizen_id,
407-
feedback['feedback']))
408-
return feedback
409-
410-
citizen.vaccine_taken = [
411-
*(citizen.vaccine_taken), vaccine_name
412-
]
413-
db.session.commit()
414-
415-
except:
416-
db.session.rollback()
417-
logger.error(REPORT_FEEDBACK["other"])
418-
return {"feedback": REPORT_FEEDBACK["other"]}
419-
except:
395+
if (option == "walk-in"):
396+
if is_reserved(citizen_id):
397+
logger.error(REPORT_FEEDBACK["has_reservation"])
398+
return {"feedback": REPORT_FEEDBACK["has_reservation"]}
399+
try:
400+
citizen = get_citizen(citizen_id)
401+
is_valid, feedback = validate_vaccine(citizen, vaccine_name)
402+
if not is_valid:
403+
logger.error("{} - {}".format(citizen_id,
404+
feedback['feedback']))
405+
return feedback
406+
citizen.vaccine_taken = [*(citizen.vaccine_taken), vaccine_name]
407+
db.session.commit()
408+
except:
409+
db.session.rollback()
410+
logger.error(REPORT_FEEDBACK["other"])
411+
return {"feedback": REPORT_FEEDBACK["other"]}
412+
413+
logger.info("{} - updated citizen - vaccine name: {}".format(
414+
citizen_id, vaccine_name))
415+
return {"feedback": REPORT_FEEDBACK["success"]}
416+
417+
elif (option == "reserve"):
420418
if not is_reserved(citizen_id):
421419
logger.error(REPORT_FEEDBACK["not_reservation"])
422420
return {"feedback": REPORT_FEEDBACK["not_reservation"]}
@@ -426,19 +424,22 @@ def update_citizen_db():
426424
citizen_data.vaccine_taken = [
427425
*(citizen_data.vaccine_taken), vaccine_name
428426
]
429-
reservation_data = get_unchecked_reservations(
430-
db, citizen_id).filter(
431-
Reservation.vaccine_name == vaccine_name).first()
427+
reservation_data = get_unchecked_reservations(citizen_id).filter(
428+
Reservation.vaccine_name == vaccine_name).first()
432429
reservation_data.checked = True
433430
db.session.commit()
434431
except:
435432
db.session.rollback()
436433
logger.error(REPORT_FEEDBACK["not_match_vaccine"])
437434
return {"feedback": REPORT_FEEDBACK["not_match_vaccine"]}
438435

439-
logger.info("{} - updated citizen - vaccine name: {}".format(
440-
citizen_id, vaccine_name))
441-
return {"feedback": REPORT_FEEDBACK["success"]}
436+
logger.info("{} - updated citizen - vaccine name: {}".format(
437+
citizen_id, vaccine_name))
438+
return {"feedback": REPORT_FEEDBACK["success"]}
439+
440+
else:
441+
logger.error(REPORT_FEEDBACK["invalid_option"])
442+
return {"feedback": REPORT_FEEDBACK["invalid_option"]}
442443

443444
@app.route('/register_user', methods=['POST'])
444445
@cross_origin()

app/feedback.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
'has_reservation': 'report failed: before walk-in, citizen need to cancel other reservation',
4040
'not_reservation': 'report failed: there is no reservation for this citizen',
4141
'not_match_vaccine': 'report failed: vaccine_name not match reservation',
42+
'invalid_option': 'report failed: option need to be neither "reserve" or "walk-in"',
4243
'other': 'report failed: something go wrong, please contact admin'
4344
}
4445

app/swagger/regispost.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ parameters:
3838
required: true
3939
- name: "is_risk"
4040
in: formData
41-
description: "inform that this citizen is in the risk category or not can either be True or False"
41+
description: "inform that this citizen is in the risk category or not can either be 'true' or 'false'"
4242
type: "string"
4343
required: true
4444
- name: "address"

app/templates/registration.html

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,12 +58,6 @@ <h5>This API is to register citizen information</h5>
5858
<li>birth_date: citizen must be at least 12 years old</li>
5959
</ul>
6060

61-
<p>[DELETE] <a href="/registration">/registration</a> - Delete all citizen data and all of his reservations</p>
62-
<ul>
63-
<li>Error only show for admin (logging)</li>
64-
<li>Redirect to <a href="/database/citizen"> Citizen Database</a></li>
65-
</ul>
66-
6761
<p>[DELETE] <a href="/registration/<citizen_id>">/registration/[citizen_id]</a> - Delete this citizen data and all of the reservations</p>
6862
<ul>
6963
<li>Error only show for admin (logging)</li>

app/templates/report_taken.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,13 @@ <h5>This API is to report vaccine taken</h5>
2323
<p>[POST] <a href="/report_taken">/report_taken</a> - To report vaccine taken</p>
2424
<ul>
2525
<li>All 3 form data parameters are required! [citizen_id, vaccine_name, option]</li>
26-
<li>One optional data parameter [option]</li>
2726
<li>citizen_id: need to be number of 13 digits</li>
2827
<li>citizen_id: must have been registered</li>
2928
<li>vaccine_name: need to be one of available vaccine [Pfizer, Astra, Sinofarm, or Sinovac]</li>
3029
<li>vaccine_name: [for citizen with reservation] need to match the reservation</li>
3130
<li>vaccine_name: [for walk-in citizen] need to follow <a href="/">vaccination orders</a></li>
32-
<li>option: option = "walk-in" for citizen with no reservation</li>
31+
<li>option: option = "reserve" for citizen with reservation</li>
32+
<li>option: option = "walk-in" for citizen without reservation</li>
3333
</ul>
3434
</div>
3535

0 commit comments

Comments
 (0)