def load_service(_context, service): # prevent circular import from guillotina.security.utils import protect_view service_conf = service["config"] factory = resolve_dotted_name(service["klass"]) permission = service_conf.get("permission", app_settings.get("default_permission", None)) protect_view(factory, permission) method = service_conf.get("method", "GET") default_layer = resolve_dotted_name( app_settings.get("default_layer", IDefaultLayer)) layer = service_conf.get("layer", default_layer) name = service_conf.get("name", "") content = service_conf.get("context", Interface) logger.debug("Defining adapter for " # noqa "{0:s} {1:s} {2:s} to {3:s} name {4:s}".format( content.__identifier__, app_settings["http_methods"][method].__identifier__, layer.__identifier__, str(factory), name, )) if not getattr(factory, "__route__", None): factory.__route__ = routes.Route(name) else: factory.__route__.service_configuration = service_conf service_conf["route"] = [str(rp) for rp in factory.__route__.route_parts] component.adapter( _context, factory=(factory, ), provides=app_settings["http_methods"][method], for_=(content, layer), name=factory.__route__.view_name, ) api = app_settings["api_definition"] ct_name = content.__identifier__ if ct_name not in api: api[ct_name] = OrderedDict() ct_api = api[ct_name] if name: if "endpoints" not in ct_api: ct_api["endpoints"] = OrderedDict() if name not in ct_api["endpoints"]: ct_api["endpoints"][name] = OrderedDict() ct_api["endpoints"][name][method] = OrderedDict(service_conf) else: ct_api[method] = OrderedDict(service_conf)
def load_service(_context, service): # prevent circular import from guillotina.security.utils import protect_view service_conf = service['config'] factory = resolve_dotted_name(service['klass']) permission = service_conf.get( 'permission', app_settings.get('default_permission', None)) protect_view(factory, permission) method = service_conf.get('method', 'GET') default_layer = resolve_dotted_name( app_settings.get('default_layer', IDefaultLayer)) layer = service_conf.get('layer', default_layer) name = service_conf.get('name', '') content = service_conf.get('context', Interface) logger.debug('Defining adapter for ' # noqa '{0:s} {1:s} {2:s} to {3:s} name {4:s}'.format( content.__identifier__, app_settings['http_methods'][method].__identifier__, layer.__identifier__, str(factory), name)) if not getattr(factory, '__route__', None): factory.__route__ = routes.Route(name) else: factory.__route__.service_configuration = service_conf component.adapter( _context, factory=(factory,), provides=app_settings['http_methods'][method], for_=(content, layer), name=factory.__route__.view_name ) api = app_settings['api_definition'] ct_name = content.__identifier__ if ct_name not in api: api[ct_name] = OrderedDict() ct_api = api[ct_name] if name: if 'endpoints' not in ct_api: ct_api['endpoints'] = OrderedDict() if name not in ct_api['endpoints']: ct_api['endpoints'][name] = OrderedDict() ct_api['endpoints'][name][method] = OrderedDict(service_conf) else: ct_api[method] = OrderedDict(service_conf)