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', 'denunciations.json') with open(db_path, 'r') as f: denunciations = 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 Alert(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(denunciations) + 1, 'reporter': reporter, 'emergency': args['emergency'], 'info': denunciation_info, 'photo': photo, 'priority': denunciation_priority, 'location': denunciation_location } denunciations.append(denunciation) with open(db_path, 'w') as f: json.dump(denunciations, f, indent=2) return {'success': True} else: return {'error': 'User doesn\'t exists'} else: return {"success": False, "penalty": "{}".format(100*(20-trust))} class Denunciations(Resource): def get(self): resp = Response(json.dumps([ { 'id': v['id'], "reporter": v["reporter"], 'info': v['info'], 'priority': v['priority'], 'emergency': v['emergency'], 'photo': v['photo'], 'location': v['location'] } for v in denunciations ] )) resp.headers['Access-Control-Allow-Origin'] = '*' return resp