from gracie_feeds_api import GracieBaseAPI


class dashboardsController(GracieBaseAPI):
    """Dashboards management for projects."""

    _controller_name = "dashboardsController"

    def list(self, projectId, **kwargs):
        """Return list of dashboards for selected project.

        Args:
            projectId: (string): projectId
            updateInterval: (string): updateInterval

        Returns:
            application/json;charset=UTF-8
        """

        all_api_parameters = {'projectId': {'name': 'projectId', 'required': True, 'in': 'query'}, 'updateInterval': {'name': 'updateInterval', 'required': False, 'in': 'query'}}
        parameters_names_map = {}
        api = '/dashboards/list'
        actions = ['post']
        params, data = self._format_params_for_api(locals(), all_api_parameters, parameters_names_map)
        return self._process_api(self._controller_name, api, actions, params, data)

    def retrieve(self, dashboardId, **kwargs):
        """Return dashboard by ID.

        Args:
            dashboardId: (string): dashboardId
            updateInterval: (string): updateInterval

        Returns:
            application/json;charset=UTF-8
        """

        all_api_parameters = {'dashboardId': {'name': 'dashboardId', 'required': True, 'in': 'query'}, 'updateInterval': {'name': 'updateInterval', 'required': False, 'in': 'query'}}
        parameters_names_map = {}
        api = '/dashboards/retrieve'
        actions = ['post']
        params, data = self._format_params_for_api(locals(), all_api_parameters, parameters_names_map)
        return self._process_api(self._controller_name, api, actions, params, data)
