????
Current Path : /opt/imunify360/venv/lib/python3.11/site-packages/im360/simple_rpc/ |
Current File : //opt/imunify360/venv/lib/python3.11/site-packages/im360/simple_rpc/smart_advice.py |
import logging from defence360agent.rpc_tools import lookup from defence360agent.utils import Scope from defence360agent.contracts.config import ControlPanelConfig from defence360agent.myimunify.advice.advice_manager import ( get_advice_notifications, make_advice, ) from defence360agent.myimunify.advice.hosting_smart_advice_api import ( sync_advices, ) class SmartAdviceEndpoints(lookup.RootEndpoints): SCOPE = Scope.IM360 @lookup.bind("smart-advice", "notifications") async def smart_advice_notifications(self): if not ControlPanelConfig.SMART_ADVICE_ALLOWED: return [] return await get_advice_notifications() @lookup.bind("smart-advice", "get-options") async def smart_advice_get_options(self): return { "mu_plugin_installation": ControlPanelConfig.SMART_ADVICE_ALLOWED, "advice_email_notification": ControlPanelConfig.ADVICE_EMAIL_NOTIFICATION, } @lookup.bind("smart-advice", "sync") async def sync_smart_advice(self): if not ControlPanelConfig.SMART_ADVICE_ALLOWED: return [] advices = await make_advice() ok = await sync_advices(advices) if ok: return [] else: raise Exception("Failed to sync advices")