* Add support for and/or params in GET, POST, PATCH and DELETE
* Restrict usage of IN in and/or to be inside parens e.g. in.(1,2,3)
* Allow quoting operators for values that have ',)' chars
inside and/or e.g. eq."(entity,1)"
* Alter fixture to test objects in public schema
Properly erase and restore the public schema -- requires permissions to install pgcrypto each time.
* Test for fks through public schema tables
* Thanks @fab1an
also fix broken text env
After the last couple of commits the tests ran correctly only on a
fresh db, in addition, the roles within the db were not created/dropped
on each request and we need that since their privileges differ and we
need to to have an absolute clean db on each execution
* Bring packages up to date
* New LTS includes deps now
Use stack to select most versions
* Alphabetize packages
* Strip down packages
Switch tests to protolude
* Appease cabal check with base version constraint
* WIP: disable counting total table size by default
* Remove commented tests since PUT is no longer supported
* Fix tests for invalid range which require count
* Do not report count in PATCH response if not asked
* Return count of deleted items only if asked
* Return count for bulk insert when requested
* Changelog entry
* WIP: remove non-openapi root spec
* Refactor ContentType
Different endpoints will favor one type over another
* Permit different Accept headers per endpoint
* Lint
* Add charset to Content-Type only when used as a header
Keep it out of error messages
* Accept: */* is last resort, not first
* Changelog
* makeMimeList consistently
* Remove schema description from OPTIONS response
* Allow a singular entity to be returned from an update
Since a `PATCH` will be an update that could affect many rows, there might be
more than one object returned. By allowing asking for a singular response,
the/an object will be returned instead of a list. This is useful in cases when
the `PATCH` is against single entity (i.e. `/items?pkey=eq.99`).
* Add tests for plurality=singular for `PATCH` requests
* Disallow updating more than one row if `plurality=singular`
As discussed in #634, we don't want to allow updating several rows with
a `PATCH` request when the `Prefer` header specifies
`return=representation;plurality=singular` as this would almost
certainly be a client error.
* Add test for patching multiple objects with singular response
Patching > 1 object with `return=representation;plurality=singular`
should return `400 Bad Request`.
* Only add singleton range for read API requests
* Disallow inserting more than one row if `plurality=singular`
Disallow inserting several rows with a `POST` request when the `Prefer`
header specifies `return=representation;plurality=singular` as this
would almost certainly be a client error.
* Only import `q` from `Text.InterpolatedString.Perl6`
* Update OpenAPI response for PATCH/POST to mention `plurality=singular`
The OpenAPI response for PATCH/POST requests now includes the `Prefer` value
`return=representation;plurality=singular`.
* Add entry in changelog