[Koha-bugs] [Bug 17314] REST API: Add API route to create, list and delete a purchase suggestion
bugzilla-daemon at bugs.koha-community.org
bugzilla-daemon at bugs.koha-community.org
Tue Sep 10 23:13:46 CEST 2019
https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=17314
Tomás Cohen Arazi <tomascohen at gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|Needs Signoff |Failed QA
--- Comment #34 from Tomás Cohen Arazi <tomascohen at gmail.com> ---
Hi all, since this got written we made some design decisions that affect this
patches. They are easy to address, though :-D
- Request validation is done using the spec, by Mojolicious::Plugin::OpenAPI
- We decided not to mix 'public' endpoints (that don't require privileged
access) from the ones restricted to privileged access users.
- The above decision implies that endpoints that have 'allow_owner' or
'allow_guarantor' permissions, need to be separated, and moved to /public. In
this case, I'd say:
GET /public/patrons/:patron_id/suggestions <- list of suggestions
POST /public/patrons/:patron_id/suggestions { object with required attributes }
<- add
This change should simplify the logic inside the controller (i.e. a separate
controller method for the public one)
I haven't checked if we allow cancelling a request and in which cases it
is/should be allowed. In that case a DELETE verb could be allowed in the
/public namespace.
- Using C4::Context::user_env is forbidden here. It relies on Cookie auth,
which is not obvious to assume is the case (we have several auth mechanisms for
the API). So you have two options: (a) make the parameter mandatory (why not?
and just return 400 bad request) or (b) use the stashed Koha::Patron object
(i.e. the one guessed from the authentication mechanism, accessible through
$c->stash('koha.user') (yes, it is the Koha::Patron object for the patron that
was granted the access). Keep in mind this use case: do we allow anonymous
purchase suggestions? Only authenticated users get the Koha::Patron stashed of
course :-D
- This should be better handled by the separation of concerns (public vs
privileged), and relaying on the spec for validation:
+ unless (any { /^$param$/ } @allowed_fields) {
+ # Ouch ! User trying to edit field he has no rights to edit!
--
You are receiving this mail because:
You are watching all bug changes.
More information about the Koha-bugs
mailing list