On Fri, 2012-06-01 at 21:33 -0400, Barry Warsaw wrote:
- Look at the IMessageStore API. Is this complete? IOW, could you
build a purely Python-level archiver like HyperKitty on top of this API? Here's where proper attachment handling would probably be necessary.
I have defined a number of functions in the kittystore interface which could go into the IMessageStore: https://github.com/pypingou/kittystore/blob/master/kittystore/__init__.py
Main difference compare to what is in the IMessageStore at the moment is that I require the fq list name as first argument of each function (ie: I have one table for each list and need to know where you would like me to search)
- How would you want to expose the IMessageStore interface into the
REST API? My sense is that you could probably take a fairly straightforward translation of IMessageStore into REST and *that* would be what you'd build the various archiver UIs on top of. REST needs to answer questions like batching which are necessary for efficient transfer of data over HTTP but not for direct Python calls.
+1 for the straightforward translation of the interface to REST. Archiver could then use either the implementation of the interface or REST.
- Should threading information be part of the IMessageStore, or a
separate interface? If the prototype archiver becomes the default implementation for the IMessageStore, it probably needs to grow a lot more functionality to support threading information.
Keeping some info about threading in the database, the KittyStore interface allows to retrieve for example all the messages of a thread or the length of a thread.
I can work on merging KittyStore and IMessageStore and providing the REST interface for it. Should I provide also an implementation ? Using PostgreSQL as backend ?