flapjack / flapjack-diner

Consumer of the Flapjack API
http://flapjack.io/
MIT License
17 stars 10 forks source link

Support bulk operation calls #47

Open jswoods opened 9 years ago

jswoods commented 9 years ago

The way the old API operated was useful in scenarios when performing a "sync" operation from another system, such as a CMDB. For example, we have all our contacts, media and notification rules defined in our CMDB, and run a build sync job to create/update/delete those in flapjack.

With the new JSON API, and the corresponding flapjack-diner library, we're no longer able to perform this same type of "sync" operation. We'll need to write code to pull all the existing contacts, media, and rules and make decisions for each as whether we should create, update or delete the contact, media and rules.

This initially sounds like a reasonable amount of work, so I figured I'd get something filed. @jessereynolds mentioned he was working on some code to do this, and I'm looking at doing the same. Preferably, it would be great to have this part of the flapjack-diner package so it can be easily reused/collaborated on.

ghost commented 9 years ago

POST, GET and DELETE should already be usable in bulk form -- for PATCH, https://github.com/json-api/json-api/issues/221 may be a useful strategy, we'd need to map those operations correctly in the update methods here.

(JSONAPI has moved away from using JSON-Patch for updating recently, but we won't change how that part of the API works until Flapjack v2 at the earliest.)