Forum Discussion

Iryna's avatar
Iryna
Data Storage
01-06-2022

Is there a way to pass 'Save as my default filter' via API or js?

We are working on embedding Sisense as a part of our own application. One of the things we'd like to do is to allow users to save some filters for the future. 

I know that Sisense has this functionality `Save as my default filter` but our user testing has shown that users can not easily find it without extra guidance. Therefore we were hoping to do our own button or other interaction in our platform that would allow saving filters for that user. 

I have tried searching for any reference in Sisense documentation, but no success so far. 

Did anyone do something similar? 🙂 

1 Reply

Replies have been turned off for this discussion
  • harikm007's avatar
    harikm007
    Data Warehouse

    hi Iryna ,

    There is an API to update dashboard. You need to pass filters to be saved as json.

    /dashboards/{id} - PATCH request

    Refer this python script.

    import json
    import requests
    
    server_name = 'https://XXXXXXX.XXXXXXX.com'
    
    username = 'enter your user name'
    password = 'Enter your password'
    
    dashboardid = 'dashboard id'
    
    
    
    login_url = server_name + '/api/v1/authentication/login'
    dash_export_base_url = server_name + '/api/v1/dashboards/export?dashboardIds='
    
    login_data = {  'username' : username,
                    'password' : password
                    }
    
    login_res = requests.post(url=login_url, data=login_data).json()
    
    access_token = login_res.get('access_token')
    if len(access_token) > 0:
        print('login succesful.')
        
    api_header = {'Authorization': 'Bearer ' + access_token, "Content-Type": "application/json"}
    
    dash_file = requests.get(url=dash_export_base_url + dashboardid, headers=api_header, allow_redirects=True).json()
    
    dash_filters = {
                    "defaultFilters": dash_file[0].get("filters")}
    
    update_dash_url = server_name + '/api/v1/dashboards/' + dashboardid
    update_res = requests.patch(url=update_dash_url, headers=api_header, allow_redirects=True, json=dash_filters)
    print('Filters Saved')
    requests.get(server_name + '/api/v1/authentication/logout')
    
    

    Thanks,

    Hari