You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

59 lines
1.9 KiB

from modules import utils
from flask import Flask, request, Response
from flask_restful import Resource, Api
import json
import os
app = Flask(__name__)
api = Api(app)
db_path = os.path.join(app.root_path, 'databases', 'crashes.json')
with open(db_path, 'r') as f:
crashes = json.load(f)
users_path = os.path.join(app.root_path, 'databases', 'users.json')
with open(users_path, 'r') as f:
users = json.load(f)
class Crash(Resource):
def post(self):
args = request.form
reporter = args['id']
user = utils.find_by_id(users.values(), reporter)
trust = int(user["trustability"])
if args["accepted"] == "true" or trust > 20:
photo = args["photo"]
if utils.find_by_id(users.values(), reporter):
denunciation_info = args['note']
denunciation_priority = 5
denunciation_location = {
"latitude": float(args['latitude']),
"longitude": float(args['longitude'])
}
denunciation = {
'id': len(crashes) + 1,
'reporter': reporter,
'emergency': args['emergency'],
'info': denunciation_info,
'photo': photo,
'plates': args.get('plates'),
'injuries': args.get('injuries'),
'lines_blocked': args.get('lines_blocked'),
'priority': denunciation_priority,
'location': denunciation_location
}
crashes.append(denunciation)
with open(db_path, 'w') as f:
json.dump(crashes, f, indent=4)
return {'success': True}
else:
return {'error': 'User doesn\'t exists'}
else:
return {"success": False, "penalty": "{}".format(100*(20-trust))}