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))}
|
|
|