def get(self): """Handles REST GET verb and returns an object as JSON payload.""" key = self.request.get('key') if not ConfigPropertyRights.can_view(): transforms.send_json_response( self, 401, 'Access denied.', {'key': key}) return item = None if key and key in config.Registry.registered.keys(): item = config.Registry.registered[key] if not item: self.redirect('/admin?action=settings') try: entity = config.ConfigPropertyEntity.get_by_key_name(key) except db.BadKeyError: entity = None if not entity: transforms.send_json_response( self, 404, 'Object not found.', {'key': key}) else: entity_dict = {'name': key, 'is_draft': entity.is_draft} entity_dict['value'] = transforms.string_to_value( entity.value, item.value_type) json_payload = transforms.dict_to_json( entity_dict, transforms.loads( ConfigPropertyEditor.get_schema_json(item))) transforms.send_json_response( self, 200, 'Success.', payload_dict=json_payload, xsrf_token=XsrfTokenManager.create_xsrf_token( 'config-property-put'))
def get(self): """Handles REST GET verb and returns an object as JSON payload.""" key = self.request.get('key') if not ConfigPropertyRights.can_view(): transforms.send_json_response(self, 401, 'Access denied.', {'key': key}) return item = None if key and key in config.Registry.registered.keys(): item = config.Registry.registered[key] if not item: self.redirect('/admin?action=settings') try: entity = config.ConfigPropertyEntity.get_by_key_name(key) except db.BadKeyError: entity = None entity_dict = {'name': key, 'label': item.label} if entity and not entity.is_draft: entity_dict['value'] = transforms.string_to_value( entity.value, item.value_type) else: entity_dict['value'] = item.default_value json_payload = transforms.dict_to_json(entity_dict) transforms.send_json_response( self, 200, 'Success.', payload_dict=json_payload, xsrf_token=crypto.XsrfTokenManager.create_xsrf_token( 'config-property-put'))
def test_string_to_value(self): assert transforms.string_to_value('True', bool) assert transforms.string_to_value('1', bool) assert transforms.string_to_value(1, bool) assert not transforms.string_to_value('False', bool) assert not transforms.string_to_value('0', bool) assert not transforms.string_to_value('5', bool) assert not transforms.string_to_value(0, bool) assert not transforms.string_to_value(5, bool) assert not transforms.string_to_value(None, bool) assert transforms.string_to_value('15', int) == 15 assert transforms.string_to_value(15, int) == 15 assert transforms.string_to_value(None, int) == 0 assert transforms.string_to_value('foo', str) == 'foo' assert transforms.string_to_value(None, str) == str('')