https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=20402

--- Comment #50 from Martin Renvoize <[email protected]> ---
Comment on attachment 74380
  --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=74380
Bug 20402: Implement OAuth2 authentication for REST API

Review of attachment 74380:
 --> 
(https://bugs.koha-community.org/bugzilla3/page.cgi?id=splinter.html&bug=20402&attachment=74380)
-----------------------------------------------------------------

Generally looks good.. moving onto the next patchset

::: Koha/OAuth.pm
@@ +21,5 @@
> +    return (0, 'unauthorized_client') unless $client_id;
> +
> +    my $clients = C4::Context->config('api_client');
> +    $clients = [ $clients ] unless ref $clients eq 'ARRAY';
> +    my ($client) = grep { $_->{client_id} eq $client_id } @$clients;

'any' would be more performant than 'grep' here:
https://perldoc.perl.org/List/Util.html#any

@@ +50,5 @@
> +    my (%args) = @_;
> +
> +    my $access_token = $args{access_token};
> +
> +    my $at = Koha::OAuthAccessTokens->find($access_token);

Personally, I would wrap this in caching.. this will be called with literally
every API request and as such will become a fairly heavy use of the DB.

::: Koha/REST/V1/Auth.pm
@@ +115,5 @@
> +
> +    if (my $oauth = $c->oauth) {
> +        my $clients = C4::Context->config('api_client');
> +        $clients = [ $clients ] unless ref $clients eq 'ARRAY';
> +        my ($client) = grep { $_->{client_id} eq $oauth->{client_id} } 
> @$clients;

Another case where 'any' would be more performant than 'grep' ;)

::: Koha/REST/V1/OAuth.pm
@@ +47,5 @@
> +        access_token => $token,
> +        expires_in   => $expires_in,
> +    );
> +
> +    my $at = Koha::OAuthAccessTokens->search({ access_token => $token 
> })->next;

search->next is generally a bad idiom when changed.. `->next` should really
only be used inside a loop where you're expecting a set of results.. when
chained it it raises warning signals to me that you really want to use either
->find or ->search( {},{order_by => 'something', rows => 1})->single to get THE
explicit result you're after.

-- 
You are receiving this mail because:
You are watching all bug changes.
_______________________________________________
Koha-bugs mailing list
[email protected]
http://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-bugs
website : http://www.koha-community.org/
git : http://git.koha-community.org/
bugs : http://bugs.koha-community.org/

Reply via email to