Add API to get elig status per imm ref
parent
1e9d62c03b
commit
22f43fc954
@ -0,0 +1,39 @@
|
||||
from flask import Flask, jsonify
|
||||
|
||||
|
||||
class ApiParamException(Exception):
|
||||
"""
|
||||
Exception thrown if API misused
|
||||
"""
|
||||
|
||||
def __init__(self, description):
|
||||
self.code = 400
|
||||
self.name = "Bad API parameter"
|
||||
self.description = description
|
||||
|
||||
|
||||
class FlaskExceptions:
|
||||
"""
|
||||
Manages flask custom exceptions
|
||||
"""
|
||||
|
||||
def __init__(self, flask_app: Flask):
|
||||
self.flask_app = flask_app
|
||||
|
||||
def add_exceptions(self):
|
||||
"""
|
||||
declares custom exceptions to flask app
|
||||
"""
|
||||
|
||||
@self.flask_app.errorhandler(ApiParamException)
|
||||
def handle_exception(e):
|
||||
return (
|
||||
jsonify(
|
||||
{
|
||||
"code": e.code,
|
||||
"name": e.name,
|
||||
"description": e.description,
|
||||
}
|
||||
),
|
||||
400,
|
||||
)
|
@ -0,0 +1,21 @@
|
||||
from flask import Flask, request
|
||||
|
||||
from ipe_fetcher import Axione
|
||||
|
||||
from eligibility_api.elig_api_exceptions import ApiParamException
|
||||
|
||||
|
||||
class EligibilityApiRoutes:
|
||||
def __init__(self, flask_app: Flask, axione_ipe: Axione):
|
||||
self.flask_app = flask_app
|
||||
self.axione_ipe = axione_ipe
|
||||
|
||||
def add_routes(self):
|
||||
|
||||
@self.flask_app.route("/eligibilite/axione", methods=["GET"])
|
||||
def get_axione_eligibility_per_immeuble():
|
||||
refimmeuble = request.args.get("refimmeuble")
|
||||
if not refimmeuble:
|
||||
raise ApiParamException("You need to specify path parameter 'refimmeuble'")
|
||||
return self.axione_ipe.get_eligibilite_per_id_immeuble(refimmeuble)
|
||||
|
Loading…
Reference in New Issue