1- import base64
2- import os
3- from lambda_app .boot import load_dot_env ,register_vendor
4- register_vendor ()
5-
6- from lambda_app import helper
7-
8- env = helper .get_environment ()
9- load_dot_env (env )
1+ """This is the main file of the lambda application
102
3+ This module contains the handler method
4+ """
5+ import boot
6+ import os
7+ import base64
118from lambda_app .services .v1 .healthcheck import HealthCheckSchema
12- from lambda_app .services .v1 .healthcheck .resources import MysqlConnectionHealthCheck , RedisConnectionHealthCheck , \
9+ from lambda_app .services .v1 .healthcheck .resources import \
10+ MysqlConnectionHealthCheck , RedisConnectionHealthCheck , \
1311 SQSConnectionHealthCheck , SelfConnectionHealthCheck
1412from lambda_app .services .v1 .healthcheck_service import HealthCheckService
1513from lambda_app .config import get_config
2220from lambda_app .services .v1 .ocoren_event_service import OcorenEventService
2321from lambda_app .vos .events import EventVO
2422from lambda_app .logging import get_logger
25- from lambda_app import APP_NAME , APP_VERSION , http_helper , helper
23+ from lambda_app import APP_NAME , APP_VERSION , http_helper
2624from lambda_app .helper import open_vendor_file , print_routes
2725from lambda_app .http_helper import CUSTOM_DEFAULT_HEADERS
2826from lambda_app .lambda_flask import LambdaFlask
2927from lambda_app .openapi import spec , get_doc , generate_openapi_yml
3028from lambda_app .openapi import api_schemas
3129from lambda_app .services .event_manager import EventManager
30+ from lambda_app import helper
31+
32+ # load env
33+ ENV = helper .get_environment ()
34+ boot .load_dot_env (ENV )
35+
3236
3337# config
34- config = get_config ()
38+ CONFIG = get_config ()
3539# debug
36- debug = helper .debug_mode ()
40+ DEBUG = helper .debug_mode ()
3741# logger
38- logger = get_logger ()
42+ LOGGER = get_logger ()
3943
40- app = LambdaFlask (__name__ )
44+ APP = LambdaFlask (__name__ )
4145
4246
43- @app .route ('/' )
47+ @APP .route ('/' )
4448def index ():
49+ """
50+ API Root path
51+ :return:
52+ :rtype: str
53+ """
4554 body = {"app" : '%s:%s' % (APP_NAME , APP_VERSION )}
4655 return http_helper .create_response (body = body , status_code = 200 )
4756
4857
4958# general vars
50- APP_QUEUE = config .APP_QUEUE
59+ APP_QUEUE = CONFIG .APP_QUEUE
5160
5261
53- @app .route ('/alive' )
62+ @APP .route ('/alive' )
5463def alive ():
5564 """
56-
65+ Health check path
5766 :return:
67+ :rtype: str
5868
5969 ---
6070
@@ -68,42 +78,58 @@ def alive():
6878 schema: HealthCheckSchema
6979 """
7080 service = HealthCheckService ()
71- service .add_check ("self" , SelfConnectionHealthCheck (logger , config ), [])
72- service .add_check ("mysql" , MysqlConnectionHealthCheck (logger , config ), ["db" ])
73- service .add_check ("redis" , RedisConnectionHealthCheck (logger , config ), ["redis" ])
74- service .add_check ("queue" , SQSConnectionHealthCheck (logger , config ), ["queue" ])
81+ service .add_check ("self" , SelfConnectionHealthCheck (LOGGER , CONFIG ), [])
82+ service .add_check (
83+ "mysql" , MysqlConnectionHealthCheck (LOGGER , CONFIG ), ["db" ])
84+ service .add_check ("redis" , RedisConnectionHealthCheck (
85+ LOGGER , CONFIG ), ["redis" ])
86+ service .add_check ("queue" , SQSConnectionHealthCheck (
87+ LOGGER , CONFIG ), ["queue" ])
7588
7689 return service .get_response ()
7790
7891
79- @app .route ('/favicon-32x32.png' )
92+ @APP .route ('/favicon-32x32.png' )
8093def favicon ():
8194 headers = CUSTOM_DEFAULT_HEADERS .copy ()
8295 headers ['Content-Type' ] = "image/png"
8396 data = base64 .b64decode (
84- 'iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAkFBMVEUAAAAQM0QWNUYWNkYXNkYALjoWNUYYOEUXN0YaPEUPMUAUM0QVNUYWNkYWNUYWNUUWNUYVNEYWNkYWNUYWM0eF6i0XNkchR0OB5SwzZj9wyTEvXkA3az5apTZ+4C5DgDt31C9frjU5bz5uxTI/eDxzzjAmT0IsWUEeQkVltzR62S6D6CxIhzpKijpJiDpOkDl4b43lAAAAFXRSTlMAFc304QeZ/vj+ECB3xKlGilPXvS2Ka/h0AAABfklEQVR42oVT2XaCMBAdJRAi7pYJa2QHxbb//3ctSSAUPfa+THLmzj4DBvZpvyauS9b7kw3PWDkWsrD6fFQhQ9dZLfVbC5M88CWCPERr+8fLZodJ5M8QJbjbGL1H2M1fIGfEm+wJN+bGCSc6EXtNS/8FSrq2VX6YDv++XLpJ8SgDWMnwqznGo6alcTbIxB2CHKn8VFikk2mMV2lEnV+CJd9+jJlxXmMr5dW14YCqwgbFpO8FNvJxwwM4TPWPo5QalEsRMAcusXpi58/QUEWPL0AK1ThM5oQCUyXPoPINkdd922VBw4XgTV9zDGWWFrgjIQs4vwvOg6xr+6gbCTqE+DYhlMGX0CF2OknK5gQ2JrkDh/W6TOEbYDeVecKbJtyNXiCfGmW7V93J2hDus1bDfhxWbIZVYDXITA7Lo6E0Ktgg9eB4KWuR44aj7ppBVPazhQH7/M/KgWe9X1qAg8XypT6nxIMJH+T94QCsLvj29IYwZxyO9/F8vCbO9tX5/wDGjEZ7vrgFZwAAAABJRU5ErkJggg==' )
85- return http_helper .create_response (body = data , status_code = 200 , headers = headers )
86-
87-
88- @app .route ('/docs' )
97+ 'iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAkFBMVEUAAAAQM0QWNUYWNkYXNkYALjo'
98+ 'WNUYYOEUXN0YaPEUPMUAUM0QVNUYWNkYWNUYWNUUWNUYVNEYWNkYWNUYWM0eF6i0XNkchR0OB5SwzZj'
99+ '9wyTEvXkA3az5apTZ+4C5DgDt31C9frjU5bz5uxTI/eDxzzjAmT0IsWUEeQkVltzR62S6D6CxIhzpKi'
100+ 'jpJiDpOkDl4b43lAAAAFXRSTlMAFc304QeZ/vj+ECB3xKlGilPXvS2Ka/h0AAABfklEQVR42oVT2XaC'
101+ 'MBAdJRAi7pYJa2QHxbb//3ctSSAUPfa+THLmzj4DBvZpvyauS9b7kw3PWDkWsrD6fFQhQ9dZLfVbC5M'
102+ '88CWCPERr+8fLZodJ5M8QJbjbGL1H2M1fIGfEm+wJN+bGCSc6EXtNS/8FSrq2VX6YDv++XLpJ8SgDWM'
103+ 'nwqznGo6alcTbIxB2CHKn8VFikk2mMV2lEnV+CJd9+jJlxXmMr5dW14YCqwgbFpO8FNvJxwwM4TPWPo'
104+ '5QalEsRMAcusXpi58/QUEWPL0AK1ThM5oQCUyXPoPINkdd922VBw4XgTV9zDGWWFrgjIQs4vwvOg6xr'
105+ '+6gbCTqE+DYhlMGX0CF2OknK5gQ2JrkDh/W6TOEbYDeVecKbJtyNXiCfGmW7V93J2hDus1bDfhxWbIZ'
106+ 'VYDXITA7Lo6E0Ktgg9eB4KWuR44aj7ppBVPazhQH7/M/KgWe9X1qAg8XypT6nxIMJH+T94QCsLvj29I'
107+ 'YwZxyO9/F8vCbO9tX5/wDGjEZ7vrgFZwAAAABJRU5ErkJggg==' )
108+ return http_helper .create_response (
109+ body = data , status_code = 200 , headers = headers )
110+
111+
112+ @APP .route ('/docs' )
89113def docs ():
90114 headers = CUSTOM_DEFAULT_HEADERS .copy ()
91115 headers ['Content-Type' ] = "text/html"
92116 html_file = open_vendor_file ('./public/swagger/index.html' , 'r' )
93117 html = html_file .read ()
94- return http_helper .create_response (body = html , status_code = 200 , headers = headers )
118+ return http_helper .create_response (
119+ body = html , status_code = 200 , headers = headers )
95120
96121
97- @app .route ('/openapi.yml' )
122+ @APP .route ('/openapi.yml' )
98123def openapi ():
99124 headers = CUSTOM_DEFAULT_HEADERS .copy ()
100125 headers ['Content-Type' ] = "text/yaml"
101126 html_file = open_vendor_file ('./public/swagger/openapi.yml' , 'r' )
102127 html = html_file .read ()
103- return http_helper .create_response (body = html , status_code = 200 , headers = headers )
128+ return http_helper .create_response (
129+ body = html , status_code = 200 , headers = headers )
104130
105131
106- @app .route ('/v1/event/<event_type>' , methods = ['POST' ])
132+ @APP .route ('/v1/event/<event_type>' , methods = ['POST' ])
107133def event_create (event_type ):
108134 """
109135 :param event_type:
@@ -135,18 +161,19 @@ def event_create(event_type):
135161 application/json:
136162 schema: EventCreateErrorResponseSchema
137163 """
138- request = ApiRequest ().parse_request (app )
139- logger .info ('event_type: {}' .format (event_type ))
140- logger .info ('request: {}' .format (request ))
164+ request = ApiRequest ().parse_request (APP )
165+ LOGGER .info ('event_type: {}' .format (event_type ))
166+ LOGGER .info ('request: {}' .format (request ))
141167
142- event_tracker = EventTracker (logger )
168+ event_tracker = EventTracker (LOGGER )
143169
144170 status_code = 200
145171 response = ApiResponse (request )
146172 response .set_hateos (False )
147173 try :
148174 # event_type validation
149- if EventType .from_value (event_type ) not in EventType .get_public_events ():
175+ if EventType .from_value (
176+ event_type ) not in EventType .get_public_events ():
150177 exception = ApiException (MessagesEnum .EVENT_TYPE_UNKNOWN_ERROR )
151178 exception .set_message_params ([event_type ])
152179 raise exception
@@ -157,7 +184,7 @@ def event_create(event_type):
157184 # else:
158185 # event_service = ProductEventService()
159186 event_service = OcorenEventService ()
160- service = EventManager (logger = logger , event_service = event_service )
187+ service = EventManager (logger = LOGGER , event_service = event_service )
161188 result = service .process (event_vo )
162189 event_hash = event_vo .hash
163190
@@ -174,7 +201,7 @@ def event_create(event_type):
174201 else :
175202 raise ApiException (MessagesEnum .INTERNAL_SERVER_ERROR )
176203 except Exception as err :
177- logger .error (err )
204+ LOGGER .error (err )
178205 result = False
179206 event_hash = None
180207 if isinstance (err , ApiException ):
@@ -204,7 +231,7 @@ def event_create(event_type):
204231 return response .get_response (status_code )
205232
206233
207- @app .route ('/v1/event/<event_type>' , methods = ['GET' ])
234+ @APP .route ('/v1/event/<event_type>' , methods = ['GET' ])
208235def event_list (event_type ):
209236 """
210237 :param event_type:
@@ -230,9 +257,9 @@ def event_list(event_type):
230257 application/json:
231258 schema: EventListErrorResponseSchema
232259 """
233- request = ApiRequest ().parse_request (app )
234- logger .info ('event_type: {}' .format (event_type ))
235- logger .info ('request: {}' .format (request ))
260+ request = ApiRequest ().parse_request (APP )
261+ LOGGER .info ('event_type: {}' .format (event_type ))
262+ LOGGER .info ('request: {}' .format (request ))
236263
237264 # event_tracker = EventTracker(logger)
238265 #
@@ -293,7 +320,6 @@ def event_list(event_type):
293320 # "params": params
294321 # }
295322
296-
297323 data = {}
298324
299325 response .set_data (data )
@@ -305,11 +331,13 @@ def event_list(event_type):
305331
306332# doc
307333spec .path (view = alive , path = "/alive" , operations = get_doc (alive ))
308- spec .path (view = event_list , path = "/v1/event/{event_type}" , operations = get_doc (event_list ))
309- spec .path (view = event_create , path = "/v1/event/{event_type}" , operations = get_doc (event_create ))
334+ spec .path (view = event_list ,
335+ path = "/v1/event/{event_type}" , operations = get_doc (event_list ))
336+ spec .path (view = event_create ,
337+ path = "/v1/event/{event_type}" , operations = get_doc (event_create ))
310338
311- print_routes (app , logger )
312- logger .info ('Running at {}' .format (os .environ ['APP_ENV' ]))
339+ print_routes (APP , LOGGER )
340+ LOGGER .info ('Running at {}' .format (os .environ ['APP_ENV' ]))
313341
314342# generate de openapi.yml
315- generate_openapi_yml (spec , logger , force = True )
343+ generate_openapi_yml (spec , LOGGER , force = True )
0 commit comments