edemaine / comingle

Multiroom meeting app integrating web tools
MIT License
44 stars 8 forks source link

Web API for listing, creating, archiving rooms #131

Closed mehtank closed 3 years ago

mehtank commented 3 years ago

Partially addresses #125

edemaine commented 3 years ago

@mehtank Looking over this code, is there a particular reason you chose an API with specific actions like raiseHand and archiveRoom instead of the generic roomEdit/tabEdit interface that the methods use internally? It seems like the latter would be easier to maintain, and safe given our plan to require the meeting secret for all methods (and frankly exactly what's available in the browser anyway). The only downside is a somewhat less intuitive API, but I think easy enough...?

mehtank commented 3 years ago

@mehtank Looking over this code, is there a particular reason you chose an API with specific actions like raiseHand and archiveRoom instead of the generic roomEdit/tabEdit interface that the methods use internally?

"Historical artifact" -- when I started on this, my main use case was to enable easy archiving of a whole bunch of rooms at once (to save on UI clicks). No idea why I didn't just unify it into a single edit endpoint when I added the raising / lowering hand bit later. I agree that a single roomEdit / tabEdit API call is better.

mehtank commented 3 years ago

Oh I did unify them later over in the tags branch #135 (commit 4197733ddef6d3e75c80bd70f46067b0d5711616)

edemaine commented 3 years ago

@mehtank I did a major rewrite of the API (and a lot of the methods). Do you want to review it before it gets merged, to make sure it does everything you want? (sans tags for now) Notably, you can do cool match + edit queries like tabEdit with body {"tabs":{"meeting":"blahblah","archived":false}, "archived":true} — this matches all unarchived tabs and makes them archived. Could use documentation...