forked from JJ/tests-python
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathhugitos.py
More file actions
68 lines (53 loc) · 1.68 KB
/
hugitos.py
File metadata and controls
68 lines (53 loc) · 1.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
"""Hitos de IV servidos para usted"""
import os
import logging
import hug
from hug.middleware import LogMiddleware
from pythonjsonlogger import jsonlogger
from datetime import datetime
from HitosIV import HitosIV
""" Define logger en JSON """
@hug.middleware_class()
class CustomLogger(LogMiddleware):
def __init__(self):
logger = logging.getLogger()
logger.setLevel(logging.INFO)
logHandler = logging.StreamHandler()
formatter = jsonlogger.JsonFormatter()
logHandler.setFormatter(formatter)
logger.addHandler(logHandler)
super().__init__(logger=logger)
def _generate_combined_log(self, request, response):
"""Given a request/response pair, generate a logging format similar to the NGINX combined style."""
current_time = datetime.utcnow()
return {'remote_addr':request.remote_addr,
'time': current_time,
'method': request.method,
'uri': request.relative_uri,
'status': response.status,
'user-agent': request.user_agent }
""" Declara clase """
estos_hitos = HitosIV()
""" Define API """
@hug.get('/')
def status():
"""Devuelve estado"""
return { "status": "OK" }
@hug.get('/status')
def status():
"""Devuelve estado"""
return { "status": "OK" }
@hug.get('/all')
def all():
"""Devuelve todos los hitos"""
return { "hitos": estos_hitos.todos_hitos() }
@hug.get('/one/{id}')
def one( id: int ):
"""Devuelve un hito"""
return { "hito": estos_hitos.uno( id ) }
if 'PORT' in os.environ :
port = int(os.environ['PORT'])
else:
port = 8000
if __name__ == '__main__':
hug.API(__name__).http.serve(port )