howdyai / botkit

Botkit is an open source developer tool for building chat bots, apps and custom integrations for major messaging platforms.
MIT License
11.45k stars 2.28k forks source link

Storage documentation is incorrect #682

Open leighman opened 7 years ago

leighman commented 7 years ago

In the storage section of the README it mentions that storage backends should implement delete methods. None of the available backends implement delete nor can I find it in the internal implementation. The documentation needs to be updated presumably.

barlock commented 7 years ago

There is at least an implementation in "simple storage" but I am confused as to what the intended api should be. The implementation I linked to says that delete should take an id but in actuality it takes the whole object. The test cases don't actually use delete so I can't tell what they think it should be. Any insights?

barlock commented 7 years ago

I can confirm that all of the botkit-storage-* in the howdyai org don't seem to implement delete. Redis implements remove though and takes an id rather than the whole object

peterswimm commented 6 years ago

Is this fixed? https://github.com/howdyai/botkit/pull/854

pedrorocha-net commented 6 years ago

I'm not sure from the comments: should we have delete methods? I'm needing them on MongoDB storage and i'm not sure if I should create a PR here in the project or should place it only inside my custom code.

What do you think?

fastbean-au commented 5 years ago

The Jabber bot looks like it requires both 'delete' and 'all' to be implemented for storage methods. CoreBot already checks for the existence of 'get' and 'save', but not 'delete' and 'all'. Checks for 'delete' and 'all' could be added to the CoreBot (which might be a breaking change), placed in the Jabber bot, or the documentation updated to include either indicating that Jabber will only work with some storage mechanism implementations, or for the storage mechanisms indicating what methods that they should implement.

It looks like the Mongo storage implements all four methods now, as does Redis (except that 'delete' is 'remove'), and Datastore and Firebase do not implement 'delete'.

fastbean-au commented 5 years ago

Looking at the other plugins (those listed here):

CouchDB and Datastore support all four methods Firestore, MySQL and Postgres (not maintained) do not support 'delete'

benbrown commented 5 years ago

hey @fastbean-au are you a member of community.botkit.ai? you should join if not!