This commit is contained in:
Bert Blommers 2020-04-14 08:06:00 +01:00
commit 69f963a3c2
3 changed files with 64 additions and 92 deletions

View file

@ -39,7 +39,7 @@ from .exceptions import (
InvalidRestApiId,
InvalidModelName,
RestAPINotFound,
ModelNotFound
ModelNotFound,
)
STAGE_URL = "https://{api_id}.execute-api.{region_name}.amazonaws.com/{stage_name}"
@ -499,13 +499,15 @@ class RestAPI(BaseModel):
self.resources[child_id] = child
return child
def add_model(self,
name,
description=None,
schema=None,
content_type=None,
cli_input_json=None,
generate_cli_skeleton=None):
def add_model(
self,
name,
description=None,
schema=None,
content_type=None,
cli_input_json=None,
generate_cli_skeleton=None,
):
model_id = create_id()
new_model = Model(
id=model_id,
@ -514,7 +516,8 @@ class RestAPI(BaseModel):
schema=schema,
content_type=content_type,
cli_input_json=cli_input_json,
generate_cli_skeleton=generate_cli_skeleton)
generate_cli_skeleton=generate_cli_skeleton,
)
self.models[name] = new_model
return new_model
@ -670,7 +673,7 @@ class DomainName(BaseModel, dict):
self["generateCliSkeleton"] = kwargs.get("generate_cli_skeleton")
class Model(BaseModel,dict):
class Model(BaseModel, dict):
def __init__(self, id, name, **kwargs):
super(Model, self).__init__()
self["id"] = id
@ -1130,14 +1133,16 @@ class APIGatewayBackend(BaseBackend):
else:
return self.domain_names[domain_name]
def create_model(self,
rest_api_id,
name,
content_type,
description=None,
schema=None,
cli_input_json=None,
generate_cli_skeleton=None):
def create_model(
self,
rest_api_id,
name,
content_type,
description=None,
schema=None,
cli_input_json=None,
generate_cli_skeleton=None,
):
if not rest_api_id:
raise InvalidRestApiId
@ -1151,7 +1156,8 @@ class APIGatewayBackend(BaseBackend):
schema=schema,
content_type=content_type,
cli_input_json=cli_input_json,
generate_cli_skeleton=generate_cli_skeleton)
generate_cli_skeleton=generate_cli_skeleton,
)
return new_model

View file

@ -16,7 +16,7 @@ from .exceptions import (
InvalidRestApiId,
InvalidModelName,
RestAPINotFound,
ModelNotFound
ModelNotFound,
)
API_KEY_SOURCES = ["AUTHORIZER", "HEADER"]
@ -600,15 +600,13 @@ class APIGatewayResponse(BaseResponse):
),
)
def models(self,request, full_url, headers):
def models(self, request, full_url, headers):
self.setup_class(request, full_url, headers)
rest_api_id = self.path.replace("/restapis/", "", 1).split("/")[0]
try:
if self.method == "GET":
models = self.backend.get_models(
rest_api_id
)
models = self.backend.get_models(rest_api_id)
return 200, {}, json.dumps({"item": models})
elif self.method == "POST":
@ -617,9 +615,7 @@ class APIGatewayResponse(BaseResponse):
schema = self._get_param("schema")
content_type = self._get_param("contentType")
cli_input_json = self._get_param("cliInputJson")
generate_cli_skeleton = self._get_param(
"generateCliSkeleton"
)
generate_cli_skeleton = self._get_param("generateCliSkeleton")
model = self.backend.create_model(
rest_api_id,
name,
@ -627,12 +623,12 @@ class APIGatewayResponse(BaseResponse):
description,
schema,
cli_input_json,
generate_cli_skeleton
generate_cli_skeleton,
)
return 200, {}, json.dumps(model)
except (InvalidRestApiId, InvalidModelName,RestAPINotFound) as error:
except (InvalidRestApiId, InvalidModelName, RestAPINotFound) as error:
return (
error.code,
{},
@ -649,13 +645,14 @@ class APIGatewayResponse(BaseResponse):
model_info = {}
try:
if self.method == "GET":
model_info = self.backend.get_model(
rest_api_id,
model_name
)
model_info = self.backend.get_model(rest_api_id, model_name)
return 200, {}, json.dumps(model_info)
except (ModelNotFound, RestAPINotFound, InvalidRestApiId,
InvalidModelName) as error:
except (
ModelNotFound,
RestAPINotFound,
InvalidRestApiId,
InvalidModelName,
) as error:
return (
error.code,
{},