Skip to content
Draft
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
66 changes: 65 additions & 1 deletion backend/CrowdAnalyser/CrowdAPI.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,4 +56,68 @@ def get_weekly_crowd():
except Exception as e:
print(e)
return {"err": "An error has occured", "status": "failed"}, 500
return make_response(response)
return make_response(response)




@crowd_api.route('/daily', methods = ["GET"])
@cross_origin(supports_credentials=True)
def get_daily_crowd():
try:
print("supp")
# Get facilityID and time
facilityID = request.args.get('facilityID')
time = int(request.args.get('time'))

# Get data Crowd table
data = list(db.Crowd.find({
"facilityID": int(facilityID),
"time": {"$gte": time, "$lte": time + 24 * 60 * 60}
}))
print(data)

# Calculating average crowd level
level_sum = 0
for checkpoint in data:
level_sum += checkpoint["level"]
avg_level = 0
if len(data) == 0:
avg_level = 0
else:
avg_level = level_sum / len(data)

# return response if successful
response = {"facilityID": facilityID, "level": {time, avg_level}, "status": "success"}
return make_response(response)
except Exception as e:
print(e)
# return false response if unsuccessful
response = {"err": "An error has occured", "status": "failed"}
return make_response(response)



@crowd_api.route('/daily', methods = ["POST"])
@cross_origin(supports_credentials=True)
def post_daily_crowd():
try:
inputs = request.get_json()

key = inputs["key"]
facilityID = int(inputs["facilityID"])
time = int(inputs["time"])
level = int(inputs["level"])

db.Crowd.insert_one({
"key": key,
"facilityID": facilityID,
"time": time,
"level": level
})

return make_response({"status": "success"})
except Exception as e:
print(e)
return make_response({"status": "failed"})