// Repository
namespace AppBundle\Entity\Users;
use ALC\RestEntityManager\RestRepository;
class UsersRepository extends RestRepository
{
public function listadoUsuariosWithVocalA(){
$response = $this->get( 'users', array() );
$arrUsers = $this->serializer->deserialize( $response->getBody()->getContents(), 'array<ALC\WebServiceBundle\Entity\Users\Users>', 'json' );
foreach( $arrUsers as $key => $objUser ){
if( mb_strpos( $objUser->getNombre(), 'a', null, 'utf8' ) === false ){
unset( $arrUsers[$key] );
}
}
return array_values( $arrUsers );
}
}
// Controller
namespace ALC\WebServiceBundle\Controller;
use FOS\RestBundle\Controller\FOSRestController;
use Symfony\Component\HttpFoundation\Request;
class UsersController extends FOSRestController
{
public function getUsersAction(Request $objRequest){
$objEntityManager = $this->get('alc_rest_entity_manager.handler')->getManager();
/**
* @var $objUsersRespository \ALC\RestEntityManager\Services\RestEntityHandler\RestEntityHandler|\ALC\WebServiceBundle\Entity\Users\UsersRepository
*/
$objUsersRespository = $objEntityManager->getRepository('ALCWebServiceBundle:Users\Users');
$arrUsersWithAVocal = $objEntityManager->listadoUsuariosWithVocalA();
// If use FOSRestBundle
return $arrUsersWithAVocal;
// If dont use FOSRestBundle
$strUsersSerialized = $this->get('alc_rest_entity_manager.serializer')->serialize( $arrUsersWithAVocal, 'json' );
$objResponse = new Response( $strUsersSerialized, 200, ['Content-Type'=>'application/json'] );
return $objResponse;
namespace ALC\WebServiceBundle\Interceptors;
use ALC\RestEntityManager\ParameterInterceptor;
class SortParametersInterceptor extends ParameterInterceptor
{
public function parseSortFields($value)
{
$firstCharacter = $value[0];
$fieldName = substr($value, 1);
$order = null;
if ($firstCharacter === '-') {
$order = 'desc';
} elseif ($firstCharacter === '+' || $firstCharacter === ' ') {
$order = 'asc';
}
// Busca las equivalencias entre los parametros de entrada de tu WS y el WS de destino
$arrFinalParams = $this->getMetadataClassReader()->matchEntityFieldsWithResourcesFieldsRecursive( [ $fieldName => $order ] );
$arrayMatch = array();
foreach( $arrFinalParams as $campoOrdenar => $metodoOrdenacion ){
$arrayMatch['_sort'] = $campoOrdenar;
$arrayMatch['_order'] = $metodoOrdenacion;
};
return $arrayMatch;
}
}
namespace ALC\WebServiceBundle\Interceptors;
use ALC\RestEntityManager\Interceptors\RequestInterceptor;
use GuzzleHttp\Event\BeforeEvent;
// La clase debe de extender al objecto ALC\RestEntityManager\Interceptors\RequestInterceptor
class TokenInjector extends RequestInterceptor
{
public function injectToken(BeforeEvent $event, array $arrManagerConfig){
$apiKey = $arrManagerConfig['custom_params']['secret_api_key'];
$event->getRequest()->setHeader('X-Api-Key', $apiKey);
return $event;
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.