Skip to content

Move Deposit creation from api/common.py to api/collection.py

Motivation:

  1. it's not an operation in common, only 'POST Col-IRI' may create a deposit
  2. it makes the BaseAPI._deposit_put function simpler and less complex

This looks like a very long commit, but there are actually four small changes. In order:

  1. actually move that creation (the large block of code was moved from one file to the other)

  2. make the 'deposit_id' argument of most functions of 'int' type instead of 'Optional[int]', since we now get the id very early by creating it in the Col-IRI view.

  3. unfortunately, this means creating a Deposit and committing it directly to the DB, which changes the behavior of the API, as it used to run checks before committing to the DB. Therefore, instead of immediately committing to get the id, it passes the Deposit object, which will be committed later by _deposit_put if all checks pass. This means changing the 'deposit_id: int' argument of many internal functions to 'deposit: Deposit'. This is why the diff looks big, but it's actually a trivial change

  4. updated test_add_metadata_to_unknown_deposit because the API now returns the right error message, as a side-effect.


Migrated from D4581 (view on Phabricator)

Merge request reports