Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added methods to convert gkeepapi.node.Note to gkeepapi.node.List and gkeepapi.node.List to gkeepapi.node.Note #165

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

kyrlon
Copy link

@kyrlon kyrlon commented Apr 18, 2024

Fixes #122. Added methods roughly outlined in the issue

@kyrlon kyrlon changed the title Added methods to convert a gkeepapi.node.Note to gkeepapi.node.List and gkeepapi.node.List to gkeepapi.node.Note Added methods to convert gkeepapi.node.Note to gkeepapi.node.List and gkeepapi.node.List to gkeepapi.node.Note Apr 18, 2024
@kiwiz
Copy link
Owner

kiwiz commented May 28, 2024

Thanks for the PR. The (official) clients preserve the ID when converting between List/Note. IIRC, that was what made implementing this feature complicated.

The code needs to:

  • Convert the body ✅
  • Preserve the metadata
  • Replace the existing List/Note that the Keep instance knows about

The last item is tricky as individual Nodes don't contain a reference to the Keep instance. This is why ListItems aren't visible to the Keep until they've been synced.

Our options:

  • Use the implementation in the PR and add a note to "Known Issues".
  • Refactor the code to inject a reference to the Keep instance within every Node.

@kyrlon
Copy link
Author

kyrlon commented Jun 1, 2024

Interesting. The latter option sounds like a challenge, but with your guidance I am up for it. Would this be some variant of dependency injection?

@kiwiz
Copy link
Owner

kiwiz commented Jun 5, 2024

Hmm, perhaps we can get around this by making it a method on the Keep object like so:

list_ = keep.to_list(note)
note = keep.to_note(list)

That looks kind of odd though. I think the crux of the issue is: Does a user expect a converted Note/List to retain all its metadata?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Convert a gkeepapi.node.Note to gkeepapi.node.List
2 participants