Bug 28272: Fix many things...
authorTomas Cohen Arazi <tomascohen@theke.io>
Mon, 10 May 2021 20:44:23 +0000 (17:44 -0300)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Tue, 11 May 2021 07:04:13 +0000 (09:04 +0200)
commit741d8a0e5373be3150572e547518974ca47ba565
tree6deea3ac11f81965018becaa4b14edd7ee5c2141
parent68bb349593aa8bbbf2b8a0e7dad4a875a56bcc9f
Bug 28272: Fix many things...

This patch could've been splitted into several. But, overall, adding
additionalAttributes: false made the API fail on requests that send
extra info (i.e. cases in which a dev added an attribute to the
underlaying class/table and forgot to deal with it on the API (either
adding it on the spec, or removing it from the response using
Koha::Class::to_api_mapping).

- Koha::Account::Line was missing: credit_type, interface, status,
  register_id and credit_number. I decided to call cash_register_id, and
  to remove credit_number from the response.
  FIXME: We need consensus on a name for the credit_number attribute, and
  add it to the response on the API. It deserves a separate bug. Too
  opinionated for a last-minute fix.
- Koha::Club::Hold::add was returning bad auto-calculated values on
  field that (also) wasn't specified on the spec. Needs a test.
- import_batch_profile had a typo: id_profile vs. profile_id.
- error.json: In this case I reverted the change. This is because some
  routes are adding more 'info' with the error message, and I consider
  this should be done in a more generic approach. Time is required for
  us to think about this. So don't break the API in the meantime.
  FIXME: Implement a generic way to add a payload to error messages on
  the API. Maybe something to work on while on bug 28020.

To test:
1. Run:
   $ kshell
  k$ prove t/db_dependent/api/v1/
=> FAIL: Lots of tests fail
2. Apply this patch
3. Repeat 1
=> SUCCESS: Tests pass!
4. Sign off :-D

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Koha/Account/Line.pm
Koha/Club/Hold.pm
api/v1/swagger/definitions/account_line.json
api/v1/swagger/definitions/club_hold.json
api/v1/swagger/definitions/error.json
api/v1/swagger/definitions/import_batch_profile.json
t/db_dependent/api/v1/import_batch_profiles.t