Skip to content
This repository was archived by the owner on May 23, 2023. It is now read-only.

Commit 4dfb16d

Browse files
Separacao de exemplos de lambda um sendo uma api-restful e outra uma mais comum
1 parent a5ddcf7 commit 4dfb16d

File tree

244 files changed

+12619
-352
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

244 files changed

+12619
-352
lines changed

examples/lambda_api/app.py

Lines changed: 2 additions & 175 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,9 @@
22
33
This module contains the handler method
44
"""
5-
import inspect
5+
import boot
66
import os
77
import base64
8-
import boot
9-
from lambda_app.services.product_manager import ProductManager
108
from lambda_app.services.v1.healthcheck import HealthCheckSchema
119
from lambda_app.services.v1.healthcheck.resources import \
1210
MysqlConnectionHealthCheck, RedisConnectionHealthCheck, \
@@ -20,7 +18,6 @@
2018
from lambda_app.http_resources.request import ApiRequest
2119
from lambda_app.http_resources.response import ApiResponse
2220
from lambda_app.services.v1.ocoren_event_service import OcorenEventService as OcorenEventServiceV1
23-
from lambda_app.services.v1.product_service import ProductService as ProductServiceV1
2421
from lambda_app.vos.events import EventVO
2522
from lambda_app.logging import get_logger
2623
from lambda_app import APP_NAME, APP_VERSION, http_helper
@@ -36,6 +33,7 @@
3633
ENV = helper.get_environment()
3734
boot.load_dot_env(ENV)
3835

36+
3937
# config
4038
CONFIG = get_config()
4139
# debug
@@ -131,101 +129,6 @@ def openapi():
131129
body=html, status_code=200, headers=headers)
132130

133131

134-
@APP.route('/v1/product', methods=['GET'])
135-
def product_list():
136-
"""
137-
---
138-
get:
139-
summary: Product List
140-
parameters:
141-
- name: limit
142-
in: query
143-
description: "List limit"
144-
required: false
145-
schema:
146-
type: int
147-
example: 20
148-
- name: offset
149-
in: query
150-
description: "List offset"
151-
required: false
152-
schema:
153-
type: int
154-
example: 0
155-
- name: fields
156-
in: query
157-
description: "Filter fields with comma"
158-
required: false
159-
schema:
160-
type: string
161-
example:
162-
- name: order_by
163-
in: query
164-
description: "Ordination of list"
165-
required: false
166-
schema:
167-
type: string
168-
enum:
169-
- "asc"
170-
- "desc"
171-
- name: sort_by
172-
in: query
173-
description: "Sorting of the list"
174-
required: false
175-
schema:
176-
type: string
177-
example: id
178-
responses:
179-
200:
180-
description: Success response
181-
content:
182-
application/json:
183-
schema: ProductListResponseSchema
184-
"""
185-
request = ApiRequest().parse_request(APP)
186-
LOGGER.info('request: {}'.format(request))
187-
188-
status_code = 200
189-
response = ApiResponse(request)
190-
response.set_hateos(False)
191-
192-
manager = ProductManager(logger=LOGGER, product_service=ProductServiceV1(logger=LOGGER))
193-
manager.debug(DEBUG)
194-
try:
195-
response.set_data(manager.list(request))
196-
response.set_total(manager.count(request))
197-
except Exception as err:
198-
LOGGER.error(err)
199-
LOGGER.info('aq')
200-
error = ApiException(MessagesEnum.LIST_ERROR)
201-
status_code = 400
202-
if manager.exception:
203-
error = manager.exception
204-
response.set_exception(error)
205-
206-
return response.get_response(status_code)
207-
208-
209-
@APP.route('/v1/product/<uuid>', methods=['GET'])
210-
def product_get(uuid):
211-
pass
212-
213-
214-
@APP.route('/v1/product/<uuid>', methods=['POST'])
215-
def product_create():
216-
pass
217-
218-
219-
@APP.route('/v1/product/<uuid>', methods=['PUT'])
220-
def product_update():
221-
pass
222-
223-
224-
@APP.route('/v1/product/<uuid>', methods=['DELETE'])
225-
def product_delete():
226-
pass
227-
228-
229132
@APP.route('/v1/event/<event_type>', methods=['POST'])
230133
def event_create(event_type):
231134
"""
@@ -358,94 +261,20 @@ def event_list(event_type):
358261
LOGGER.info('event_type: {}'.format(event_type))
359262
LOGGER.info('request: {}'.format(request))
360263

361-
# event_tracker = EventTracker(logger)
362-
#
363264
status_code = 200
364265
response = ApiResponse(request)
365266
response.set_hateos(False)
366-
# try:
367-
# # event_type validation
368-
# if EventType.from_value(event_type) not in EventType.get_public_events():
369-
# exception = ApiException(MessagesEnum.EVENT_TYPE_UNKNOWN_ERROR)
370-
# exception.set_message_params([event_type])
371-
# raise exception
372-
#
373-
# event_vo = EventVO(event_type=event_type, data=request.where)
374-
# # if EventType.from_value(event_type) == EventType.OCOREN_EVENT:
375-
# # event_service = OcorenEventService()
376-
# # else:
377-
# # event_service = ProductEventService()
378-
# event_service = OcorenEventService()
379-
# service = EventManager(logger=logger, event_service=event_service)
380-
# result = service.process(event_vo)
381-
# event_hash = event_vo.hash
382-
#
383-
# event_tracker.track(event_hash, event_vo.to_dict())
384-
#
385-
# if result:
386-
# code = MessagesEnum.EVENT_REGISTERED_WITH_SUCCESS.code
387-
# label = MessagesEnum.EVENT_REGISTERED_WITH_SUCCESS.label
388-
# message = MessagesEnum.EVENT_REGISTERED_WITH_SUCCESS.message
389-
# params = None
390-
# else:
391-
# if isinstance(service.exception, ApiException):
392-
# raise service.exception
393-
# else:
394-
# raise ApiException(MessagesEnum.INTERNAL_SERVER_ERROR)
395-
# except Exception as err:
396-
# logger.error(err)
397-
# result = False
398-
# event_hash = None
399-
# if isinstance(err, ApiException):
400-
# api_ex = err
401-
# status_code = 400
402-
# else:
403-
# api_ex = ApiException(MessagesEnum.CREATE_ERROR)
404-
# status_code = 500
405-
#
406-
# code = api_ex.code
407-
# label = api_ex.label
408-
# message = api_ex.message
409-
# params = api_ex.params
410-
#
411-
# data = {
412-
# "result": result,
413-
# "event_hash": event_hash,
414-
# "code": code,
415-
# "label": label,
416-
# "message": message,
417-
# "params": params
418-
# }
419267

420268
data = {}
421269

422270
response.set_data(data)
423271
response.set_total(len(data))
424272

425-
# event_tracker.track(event_hash, data)
426273
return response.get_response(status_code)
427274

428275

429-
# *************
430276
# doc
431-
# *************
432277
spec.path(view=alive, path="/alive", operations=get_doc(alive))
433-
# *************
434-
# product
435-
# *************
436-
spec.path(view=product_list,
437-
path="/v1/product", operations=get_doc(product_list))
438-
spec.path(view=product_get,
439-
path="/v1/product/{uuid}", operations=get_doc(product_get))
440-
spec.path(view=product_create,
441-
path="/v1/product/{uuid}", operations=get_doc(product_create))
442-
spec.path(view=product_update,
443-
path="/v1/product/{uuid}", operations=get_doc(product_update))
444-
spec.path(view=product_delete,
445-
path="/v1/product/{uuid}", operations=get_doc(product_delete))
446-
# *************
447-
# event
448-
# *************
449278
spec.path(view=event_list,
450279
path="/v1/event/{event_type}", operations=get_doc(event_list))
451280
spec.path(view=event_create,
@@ -454,7 +283,5 @@ def event_list(event_type):
454283
print_routes(APP, LOGGER)
455284
LOGGER.info('Running at {}'.format(os.environ['APP_ENV']))
456285

457-
# *************
458286
# generate de openapi.yml
459-
# *************
460287
generate_openapi_yml(spec, LOGGER, force=True)

examples/lambda_api/lambda_app/http_resources/response.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ def get_response(self, status_code=None):
7676
label = MessagesEnum.NOK.label
7777
message = MessagesEnum.NOK.message % message
7878

79+
# TODO rever
7980
body = {
8081
"error": {
8182
"code": code,
@@ -141,6 +142,8 @@ def get_response(self, status_code=None):
141142
del body["meta"]
142143
del body["links"]
143144

145+
# todo deletar o control na leitura de um item unico
146+
144147
if 'Content-Type' in headers and headers['Content-Type'] == 'application/json':
145148
body = helper.to_json(body)
146149
return Response(response=body, status=status_code, headers=headers)

examples/lambda_api/lambda_app/openapi/api_schemas.py

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,15 @@
22

33
from lambda_app.enums.messages import MessagesEnum
44
from lambda_app.http_resources.request_control import Pagination
5-
from lambda_app.openapi.schemas import DeletionSchema, RequestControlSchema, MetaSchema, LinkSchema
5+
from lambda_app.openapi.schemas import DeletionSchema, RequestControlSchema, MetaSchema, LinkSchema, ErrorSchema
6+
7+
8+
class DefaultListResponseSchema(Schema):
9+
success = fields.Bool(default=True)
10+
code = fields.Int(required=True)
11+
label = fields.Str()
12+
message = fields.Str()
13+
params = fields.List(fields.Str())
614

715

816
# ***************************
@@ -14,7 +22,7 @@ class ProductSchema(Schema):
1422
uuid = fields.UUID(example="3d9f2fdb-f71a-4e6d-8fbf-72b12cc0c381")
1523

1624

17-
class ProductListResponseSchema(Schema):
25+
class ProductListResponseSchema(DefaultListResponseSchema):
1826
data = fields.List(fields.Nested(ProductSchema))
1927
control = fields.Nested(RequestControlSchema)
2028
meta = fields.Nested(MetaSchema)
@@ -47,13 +55,17 @@ class EventUpdateRequest(EventCreateRequest):
4755
pass
4856

4957

50-
class EventListResponseSchema(Schema):
58+
class EventListResponseSchema(DefaultListResponseSchema):
5159
data = fields.List(fields.Nested(EventSchema))
5260
control = fields.Nested(RequestControlSchema)
5361
meta = fields.Nested(MetaSchema)
5462
links = fields.List(fields.Nested(LinkSchema))
5563

5664

65+
class EventListErrorResponseSchema(ErrorSchema):
66+
pass
67+
68+
5769
class EventGetResponseSchema(Schema):
5870
data = fields.Nested(EventSchema)
5971
control = fields.Nested(RequestControlSchema)

examples/lambda_api/lambda_app/openapi/schemas.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,19 @@
44

55

66
class DeletionSchema(Schema):
7-
success = fields.Bool()
7+
success = fields.Bool(default=False)
88
code = fields.Int(required=True)
99
label = fields.Str()
1010
message = fields.Str()
1111
params = fields.List(fields.Str())
1212

1313

1414
class ErrorSchema(Schema):
15+
success = fields.Bool(default=False)
1516
code = fields.Int(required=True)
1617
label = fields.Str()
1718
message = fields.Str()
19+
params = fields.List(fields.Str())
1820

1921

2022
class RequestControlSchema(Schema):

examples/lambda_api/lambda_app/services/product_manager.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,7 @@
55

66

77
class ProductManager:
8-
DEBUG = False
9-
10-
def __init__(self, logger=None, config=None, product_service=None):
11-
# logger
8+
def __init__(self, logger=None, product_service=None):
129
self.logger = logger if logger is not None else get_logger()
1310
# configurations
1411
self.config = config if config is not None else get_config()

0 commit comments

Comments
 (0)