Go GUI Helpers

For years I've made helper tools for myself in PHP. PHP is my jam-language, the one I have the most experience in, and I've got a tonne of little tools around the place to make my life (home and work) easier. A tool to collate my tasks from work's various task management system, added a real-quick stat show-er on my home page pulling stats from various sources, that sort of thing. There was an adjustment to some systems at work that made finding definitive data more difficuly, so to get around that I found appropriate APIs and was about to make yet-another-quick-PHP app before thinking for a second.

  1. Small user group
  2. Not public
  3. Doesn't get any advantage from a web site

And I had been learning Go and recently spent ages figuring out how to build a GUI in Go using Fyne for a virtual desktop calendar from Kickstarter. I'd also done work with some others at work looking at making a Go standard so thought, maybe this would be worthwhile as another task

  1. Validate and refresh tokens if required for OAuth
  2. Loop
    1. Ask for details to search for
    2. Retrieve matching entries
    3. If match selected, goto '3'
  3. Print entry

Thinking further I added in

  • Encrypt the tokens so they can't be harvested
  • Use pandoc to print entry as Docx, so add a markdown template to let the output be adjusted without recompiling

It took me a day. To build a full GUI system that used AES encrypted OAuth tokens to search a SharePoint list for an entered term, pull down the match and run that through a markdown template to output a formatted Word document for including in official records. While searching it uses a go parallel process to have a '...' throbber that deactivates when the search is finished.

Go. Is POWERFUL. Holy cats.