Rebuild API service as standard Rails app #36
Replaces #34 - this is a rebase/reorder of the work in that branch to be better about preserving history.
While hexagonal architecture is fine in principle, the complexity of the abstraction was getting in the way of delivering important bugs/features, namely:
This pull request, almost entirely by @elliotcm, rewrites the application as a standard Rails application, and as a bonus implements queuing using Sidekiq and fixes the topic bug.
Note: this will require merging a separate PR in gds-api-adapters to fix the URL namespacing that's changed (from underscore separated to dash-separated), and careful deployment (we'll want to wipe the database before deploying, as the migrations and schema have changed).
I recommend checking out the code and running it to test this - reading the diff is going to be hairy.
In production-like environments this is created by Puppet; in development and test we'll have `sudo` so run the command explicitly ourselves.
Paired with @rboulton. We now check that we have all the keys rather than an overlapping subset of them, and use this in `where_tags_equal`. Also add passing tests of SubscriberList.with_at_least_one_tag_of_each_type to narrow down its behaviour a bit more, and tests of SubscriberList.where_tags_equal, which fail in some cases.