Example #1
0
 def delete(**path_data):
     headers = dict()
     response_data = dict()
     require_response_data(definition.func(**path_data))
     definition.header_func(headers, response_data)
     response_format = self.negotiate_response_content(
         definition.response_formats)
     return dump_response_data(
         "",
         None,
         status_code=Operation.DeleteFor.value.default_code,
         headers=headers,
         response_format=response_format,
     )
Example #2
0
 def create(**path_data):
     request_data = load_request_data(definition.request_schema)
     response_data = require_response_data(
         definition.func(**merge_data(path_data, request_data)))
     return dump_response_data(definition.response_schema,
                               response_data,
                               Operation.CreateFor.value.default_code)
Example #3
0
 def update(**path_data):
     # NB: using partial here means that marshmallow will not validate required fields
     request_data = load_request_data(definition.request_schema,
                                      partial=True)
     response_data = require_response_data(
         definition.func(**merge_data(path_data, request_data)))
     return dump_response_data(definition.response_schema,
                               response_data)
Example #4
0
 def replace(**path_data):
     request_data = load_request_data(definition.request_schema)
     # Replace/put should create a resource if not already present, but we do not
     # enforce these semantics at the HTTP layer. If `func` returns falsey, we
     # will raise a 404.
     response_data = require_response_data(
         definition.func(**merge_data(path_data, request_data)))
     return dump_response_data(definition.response_schema,
                               response_data)
Example #5
0
 def retrieve(**path_data):
     headers = dict()
     request_data = load_query_string_data(request_schema)
     response_data = require_response_data(definition.func(**merge_data(path_data, request_data)))
     definition.header_func(headers, response_data)
     response_format = self.negotiate_response_content(definition.response_formats)
     return dump_response_data(
         definition.response_schema,
         response_data,
         headers=headers,
         response_format=response_format,
     )
Example #6
0
 def update(**path_data):
     headers = dict()
     # NB: using partial here means that marshmallow will not validate required fields
     request_data = load_request_data(definition.request_schema, partial=True)
     response_data = require_response_data(definition.func(**merge_data(path_data, request_data)))
     definition.header_func(headers, response_data)
     response_format = self.negotiate_response_content(definition.response_formats)
     return dump_response_data(
         definition.response_schema,
         response_data,
         headers=headers,
         response_format=response_format,
     )
Example #7
0
 def delete(**path_data):
     headers = dict()
     request_data = load_query_string_data(request_schema)
     response_data = require_response_data(definition.func(**merge_data(path_data, request_data)))
     definition.header_func(headers, response_data)
     response_format = self.negotiate_response_content(definition.response_formats)
     return dump_response_data(
         "",
         None,
         status_code=Operation.Delete.value.default_code,
         headers=headers,
         response_format=response_format,
     )
Example #8
0
 def create(**path_data):
     request_data = load_request_data(definition.request_schema)
     response_data = require_response_data(
         definition.func(**merge_data(path_data, request_data)))
     headers = encode_id_header(response_data)
     definition.header_func(headers, response_data)
     response_format = self.negotiate_response_content(
         definition.response_formats)
     return dump_response_data(
         definition.response_schema,
         response_data,
         Operation.CreateFor.value.default_code,
         headers=headers,
         response_format=response_format,
     )
Example #9
0
 def replace(**path_data):
     headers = dict()
     request_data = load_request_data(definition.request_schema)
     response_data = require_response_data(
         definition.func(**merge_data(path_data, request_data)))
     definition.header_func(headers, response_data)
     response_format = self.negotiate_response_content(
         definition.response_formats)
     return dump_response_data(
         definition.response_schema,
         response_data,
         status_code=Operation.UpdateFor.value.default_code,
         headers=headers,
         response_format=response_format,
     )
Example #10
0
 def replace(**path_data):
     headers = dict()
     request_data = load_request_data(definition.request_schema)
     # Replace/put should create a resource if not already present, but we do not
     # enforce these semantics at the HTTP layer. If `func` returns falsey, we
     # will raise a 404.
     response_data = require_response_data(definition.func(**merge_data(path_data, request_data)))
     definition.header_func(headers, response_data)
     response_format = self.negotiate_response_content(definition.response_formats)
     return dump_response_data(
         definition.response_schema,
         response_data,
         headers=headers,
         response_format=response_format,
     )
Example #11
0
 def delete(**path_data):
     require_response_data(definition.func(**path_data))
     return "", Operation.DeleteFor.value.default_code
Example #12
0
 def retrieve(**path_data):
     request_data = load_query_string_data(request_schema)
     response_data = require_response_data(
         definition.func(**merge_data(path_data, request_data)))
     return dump_response_data(definition.response_schema,
                               response_data)
Example #13
0
 def retrieve(**path_data):
     response_data = require_response_data(definition.func(**path_data))
     return dump_response_data(definition.response_schema,
                               response_data)