openstackid-resources/app/Repositories/ResourceServer/DoctrineEndPointRateLimitByIPRepository.php
Sebastian Marcet 8d9968a187 added new public endpoint
added new public endpoint api/public/v1/members
also added api rate limit middleware

Change-Id: I456e2a56f3afdc03b50cb771faf0cde7a373a18e
2017-06-02 14:21:05 -03:00

53 lines
2.0 KiB
PHP

<?php namespace repositories\resource_server;
/**
* Copyright 2017 OpenStack Foundation
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**/
use App\Models\ResourceServer\EndPointRateLimitByIP;
use App\Models\ResourceServer\IEndpointRateLimitByIPRepository;
use repositories\DoctrineRepository;
use Illuminate\Support\Facades\Log;
/**
* Class DoctrineEndPointRateLimitByIPRepository
* @package repositories\resource_server
*/
final class DoctrineEndPointRateLimitByIPRepository
extends DoctrineRepository
implements IEndpointRateLimitByIPRepository
{
/**
* @param string $ip
* @param string $route
* @param string $http_method
* @return EndPointRateLimitByIP
*/
public function getByIPRouteMethod($ip, $route, $http_method)
{
try {
return $this->getEntityManager()->createQueryBuilder()
->select("c")
->from(\App\Models\ResourceServer\EndPointRateLimitByIP::class, "c")
->where('c.route = :route')
->andWhere('c.http_method = :http_method')
->andWhere('c.ip = :ip')
->andWhere('c.active = 1')
->setParameter('ip', trim($ip))
->setParameter('route', trim($route))
->setParameter('http_method', trim($http_method))
->getQuery()
->getOneOrNullResult();
}
catch(\Exception $ex){
Log::error($ex);
return null;
}
}
}