smartsheet / smartsheet-csharp-sdk

Library that uses C# to connect to Smartsheet services.
Apache License 2.0
12 stars 6 forks source link

get /home disappearing ? #62

Open mermich opened 4 months ago

mermich commented 4 months ago

Just checking the changes made on the new version api with the folders/personal :

Given those changes, how can we rebuild a the tree of folders, and sheet:

Lets say i want a tree view of items in folder i'll need calls for :

  1. List sheets inside of a folder
  2. List reports in that folder
  3. List dashbaord/sights in that folder
  4. List folders in that folder

Any other laternive are in the pipe, such as paging ?

timothodge commented 4 months ago

Hi @mermich,

Looking at the public API here: https://smartsheet.redoc.ly/tag/homeDescription

It says: In the Smartsheet UI, the "Home" tab shows all objects a user has access to, including dashboards (also called Sights in the API), folders, reports, sheets, templates, and workspaces. NOTE: The GET /home endpoint is deprecated. Use GET /folders/personal to get shared items and GET /workspaces/ to get workspaces.

Q1: Where are the workspaces,do i need a second call?

Q2: Where are the sub folders?

Q3: Where are the sheets, reports and dashboards inside of a folder (or a workspace) ?

For a tree view of items in a folder I think it can be done with mostly the list folders API and maybe a few more calls for each subfolder.

Is your last question asking if we are thinking of implementing paging for the /home API? I believe that it is being fully deprecated and will not be supported long term.

Thanks for being on top of the changes we are making 👍

mermich commented 4 months ago

So in other words, I'l have to do recursive calls to get all the hierarchy, of sheets, reports and forlder (thus 4 call per folder). I can't figure out the number of calls required to rebuild the tree of large clients, nor the cost of redevelopping the programs and solutions because of such regression.

Just to say, currently the only change on the v4 is deactivating the /home endpoint, and no addition on any feature/endpoint.

One more question : will this change only affect the US instance, or will it also affect the US GOV and Europe instances as well ?

Last question : when will the current /home endpoint will get deactivated ?

mermich commented 4 months ago

One more example : let's say I want to find where a sheet is located, including folder and subfolder: i'll have to first read the sheet to get its workspace and then do recursive calls to read each folder/subfolder.

timothodge commented 4 months ago

So, first and foremost the /home deprecation PR is not in version 4.0.0.

That version is a major update to the dot net 8.0 which was a big jump so that is why it jumped us to 4.0.0.

Possible solution to /home deprecation

I have been thinking about how the /home deprecation will be a big shake up and I have some ideas on how to ease migration off of /home.

Note before I begin: I totally get having a hierarchy of sheets, reports, dashboards, folders, workspaces. It closely mimics the browse behavior in Smartsheet and is useful for users without many things. That being said here is some ideas on how to move away from it...

  1. Start a hierarchy with only listing workspaces, this should be relatively quick and only require calls to the list workspaces API.

  2. When a user clicks on one of the workspaces that is when you can list all folders inside that workspace and any sheets, reports, dashboards that are not in a folder. Note I might suggest doing a preload of this if you think you will run into issues with latency/paging requirements. If a user clicks on a folder you can use the folder object to list all sheets, reports, dashboards etc that are in that folder.

  3. (Extra awesome) For users that will not like the completely collapsed hierarchy you can also implement a search bar with or without ways to filter for the assets they want to look for. I would personally default it to non-rows since they seem to always clutter the search results.

Caveats

As for knowing where a sheet is located I do agree it would be kinda tedious to get that information. That is part of why I started thinking of this level based approach in steps 1-3.

Extra things you asked about.