code: def run(self) -> Optional[DashboardPermalinkValue]:
      self.validate()
      try:
          key = decode_permalink_id(self.key, salt=self.salt)
          command = GetKeyValueCommand(
              resource=self.resource,
              key=key,
              codec=self.codec,
          )
          value: Optional[DashboardPermalinkValue] = command.run()
          if value:
              DashboardDAO.get_by_id_or_slug(value["dashboardId"])
              return value
          return None
      except (
          DashboardNotFoundError,
          KeyValueCodecDecodeException,
          KeyValueGetFailedError,
          KeyValueParseKeyError,
      ) as ex:
          raise DashboardPermalinkGetFailedError(
              message=ex.message
          ) from ex
      except SQLAlchemyError as ex:
          logger.exception("Error running get command")
          raise DashboardPermalinkGetFailedError() from ex
  
file_path: superset/superset/commands/dashboard/permalink/get.py
imports: import logging
  from typing import Optional
  from sqlalchemy.exc import SQLAlchemyError
  from superset.commands.dashboard.exceptions import DashboardNotFoundError
  from superset.commands.dashboard.permalink.base import BaseDashboardPermalinkCommand
  from superset.commands.key_value.get import GetKeyValueCommand
  from superset.daos.dashboard import DashboardDAO
  from superset.dashboards.permalink.exceptions import DashboardPermalinkGetFailedError
  from superset.dashboards.permalink.types import DashboardPermalinkValue
  from superset.key_value.exceptions import KeyValueCodecDecodeException, KeyValueGetFailedError, KeyValueParseKeyError
  from superset.key_value.utils import decode_permalink_id
label_desc: Use image node_id 2 for calling the GetDashboardPermalinkCommand obj's underlying member method code with example usage: obj.run() and returns: None, value