def create_collection(**path_data): request_data = load_request_data(definition.request_schema) # NB: if we don't filter the request body through an explicit page schema, # we will leak other request arguments into the pagination query strings page = self.page_cls.from_query_string(self.page_schema(), request_data) result = definition.func(**merge_data( path_data, merge_data( request_data, page.to_dict(func=identity), ), )) response_data, headers = page.to_paginated_list( result, ns, Operation.CreateCollection) definition.header_func(headers, response_data) response_format = self.negotiate_response_content( definition.response_formats) return dump_response_data( paginated_list_schema, response_data, headers=headers, response_format=response_format, )
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)
def update_batch(**path_data): request_data = load_request_data(definition.request_schema) response_data = definition.func( **merge_data(path_data, request_data)) return dump_response_data(definition.response_schema, response_data, operation.value.default_code)
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)
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)
def foo_command(): """ My doc string """ request_data = load_request_data(request_schema) response_data = dict( result=True, value=request_data["value"], ) return dump_response_data(response_schema, response_data, Operation.Command.value.default_code)
def foo_command(): """ My doc string """ request_data = load_request_data(request_schema) response_data = dict( result=True, value=request_data["value"], ) return dump_response_data(response_schema, response_data, Operation.Command.value.default_code)
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, )
def update_batch(**path_data): headers = dict() request_data = load_request_data(definition.request_schema) 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.value.default_code, headers=headers, response_format=response_format, )
def create(**path_data): request_data = load_request_data(definition.request_schema) 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, status_code=Operation.Create.value.default_code, headers=headers, response_format=response_format, )
def saved_search(**path_data): request_data = load_request_data(definition.request_schema) page = self.page_cls.from_dict(request_data) request_data.update(page.to_dict(func=identity)) result = definition.func(**merge_data(path_data, request_data)) response_data, headers = page.to_paginated_list(result, ns, Operation.SavedSearch) definition.header_func(headers, response_data) response_format = self.negotiate_response_content(definition.response_formats) return dump_response_data( paginated_list_schema, response_data, headers=headers, response_format=response_format, )
def update(**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, headers=headers, response_format=response_format, )
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, )
def saved_search(**path_data): request_data = load_request_data(definition.request_schema) page = self.page_cls.from_dict(request_data) request_data.update(page.to_dict(func=identity)) result = definition.func(**merge_data(path_data, request_data)) response_data, headers = page.to_paginated_list( result, ns, Operation.SavedSearch) definition.header_func(headers, response_data) response_format = self.negotiate_response_content( definition.response_formats) return dump_response_data( paginated_list_schema, response_data, headers=headers, response_format=response_format, )
def create_collection(**path_data): request_data = load_request_data(definition.request_schema) # NB: if we don't filter the request body through an explicit page schema, # we will leak other request arguments into the pagination query strings page = self.page_cls.from_query_string(self.page_schema(), request_data) result = definition.func(**merge_data( path_data, merge_data( request_data, page.to_dict(func=identity), ), )) response_data, headers = page.to_paginated_list(result, ns, Operation.CreateCollection) definition.header_func(headers, response_data) response_format = self.negotiate_response_content(definition.response_formats) return dump_response_data( paginated_list_schema, response_data, headers=headers, response_format=response_format, )
def create_collection(**path_data): request_data = load_request_data(definition.request_schema) page = self.page_cls.from_query_string(self.page_schema(), {}) result = definition.func(**merge_data( path_data, merge_data( request_data, page.to_dict(func=identity), ), )) response_data, headers = page.to_paginated_list( result, ns, Operation.CreateCollection) definition.header_func(headers, response_data) response_format = self.negotiate_response_content( definition.response_formats) return dump_response_data( paginated_list_schema, response_data, headers=headers, response_format=response_format, )