from api.modules import utils from flask import Flask, request from flask_restful import Resource, Api, abort 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 username= "" for user in users: if users[user]["id"] == args["id"]: username=user break trust = int(users[username]["trustability"]) if trust > 20 or args["accepted"] == "true": return {"success":True} else: return {"success":False,"penalty":"{}".format(100*(20-trust))} class Denunciations(Resource): def get(self): return [ { 'id' : v['id'], 'info': v['info'], 'priority': v['priority'], 'location' : v['location'] } for v in denunciations ] class Denounce(Resource): def post(self): args = request.form reporter = args['id'] if utils.find_by_id(users.values(), reporter): denunciation_info = args['info'] denunciation_priority = args['priority'] denunciation_location = { "latitude": args['latitude'], "longitude": args['longitude'] } denunciation = { 'id': len(denunciations) + 1, 'reporter': reporter, 'info': denunciation_info, 'priority': denunciation_priority, 'location': denunciation_location } denunciations.append(denunciation) with open(db_path, 'w') as f: json.dump(denunciations, f, indent=4) return denunciation else: return {'error': 'User doesn\'t exists'}