def patch_record(record, request): # XXX: add util clone_request() backup_pattern = request.matched_route.pattern backup_body = request.body backup_validated = request.validated # Instantiate record resource with current request. context = RouteFactory(request) context.get_permission_object_id = lambda r, i: record_uri(r) record_pattern = request.matched_route.pattern.replace('/attachment', '') request.matched_route.pattern = record_pattern # Simulate update of fields. request.validated = record request.body = json.dumps(record).encode('utf-8') resource = Record(request, context) request.current_resource_name = 'record' try: saved = resource.patch() except httpexceptions.HTTPNotFound: saved = resource.put() request.matched_route.pattern = backup_pattern request.body = backup_body request.validated = backup_validated return saved
def patch_record(record, request): # XXX: add util clone_request() backup_pattern = request.matched_route.pattern backup_body = request.body backup_validated = request.validated # Instantiate record resource with current request. context = RouteFactory(request) context.get_permission_object_id = lambda r, i: record_uri(r) record_pattern = request.matched_route.pattern.replace('/attachment', '') request.matched_route.pattern = record_pattern # Simulate update of fields. request.validated = record request.body = json.dumps(record).encode('utf-8') resource = Record(request, context) request.current_resource_name = 'record' setattr(request, '_attachment_auto_save', True) # Flag in update listener. try: saved = resource.patch() except httpexceptions.HTTPNotFound: saved = resource.put() request.matched_route.pattern = backup_pattern request.body = backup_body request.validated = backup_validated return saved
def save_record(record, request): # XXX: add util clone_request() backup_pattern = request.matched_route.pattern backup_body = request.body backup_validated = request.validated # Instantiate record resource with current request. context = RouteFactory(request) context.get_permission_object_id = lambda r, i: record_uri(r) record_pattern = request.matched_route.pattern.replace('/attachment', '') request.matched_route.pattern = record_pattern # Simulate update of fields. request.validated = record request.body = json.dumps(record) resource = Record(request, context) try: saved = resource.patch() except httpexceptions.HTTPNotFound: saved = resource.put() request.matched_route.pattern = backup_pattern request.body = backup_body request.validated = backup_validated return saved