Depositor API Additions

API for accessing resources (Bags) for a Depositor. All changes should also be reflected in the Ingest UI. Not entirely sure what type of query parameters we should have at the moment, but let's keep it simple to start. We can also get statistics for depositors, but can hold off on that initially - might be better as a separate issue.

API Endpoints

GET /api/depositors: Page<Depositor>
GET /api/depositors/<namespace>: Depositor
GET /api/depositors/<namespace>/bags: List<Bag>
GET /api/depositors/<namespace>/bags/<bag-name>: Bag
POST DepositorCreate -> /api/depositors: Depositor
POST String -> /api/depositors/<namespace>/nodes: Depositor
POST DepositorContactCreate -> /api/depositors/<namespace>/contacts: DepositorContact
DELETE /api/depositors/<namespace>/nodes/<namespace>: Depositor
DELETE DepositorContactRemove -> /api/depositors/<namespace>/contacts/: Depositor

Tasks

  • Depositor Models
    • Depositor
    • DepositorCreate
    • DepositorContact
    • DepositorContactCreate
    • DepositorEdit
  • Depositor Serializer
  • Depositor DAO
  • Retrofit service for the API endpoints
  • POST /api/depositors: Depositor
    • 201 - Created
    • 400 - BadRequest
    • 403 - Forbidden
    • 409 - Conflict (namespace)
  • GET /api/depositors: List<Depositor>
  • GET /api/depositors/<name>: Depositor
    • 404 - NotFound (namespace)
  • GET /api/depositors/<name>/bags: List<Bag>
    • 200 - OK
    • 404 - NotFound (namespace)
  • GET /api/depositors/<name>/bags/<bag-name>: Bag
    • 200 - OK
    • 404 - NotFound (namespace || bag-name)
  • POST /api/depositors/<namespace>/nodes/<node-name>: Depositor
    • 200 - Ok
    • 400 - BadRequest (node dne)
    • 403 - Forbidden
    • 404 - NotFound (namespace)
    • 409 - Conflict (node-name) - ?
  • POST /api/depositors/<namespace>/contacts: DepositorContact
    • 201 - Created
    • 400 - BadRequest (DepositorContactCreate)
    • 403 - Forbidden
    • 404 - NotFound (namespace)
    • 409 - Conflict (email)?
  • DELETE /api/depositors/<namespace>/nodes/<node-name>
    • 200 - Ok
    • 400 - BadRequest (node dne)
    • 403 - Forbidden
    • 404 - NotFound (namespace)
  • DELETE /api/depositors/<namespace>/contacts/
    • 200 - Ok
    • 400 - BadRequest (contact-name)
    • 403 - Forbidden
    • 404 - NotFound (namespace)
Edited by Ghost User