/** * Funcion: getFunction * Descripcion: Dirige la peticion a la funcion correspondiente * @param api $api * @return $salida * @throws Exception * @author Rodrigo Contreras B. <*****@*****.**> * @version 2015-12-07 - Version Inicial * @version 2015-12-29 - Simplificacion metodo de llamados * @since 2015-12-07 */ function getFunction(api $api) { // Variables Generales $request = $this->setRequest(); $withRequest = 0; // Librerias $controller = $api->getController(); $controllerBusiness = $api->getController() . 'Business'; // Crea objeto si existe la clase if (!class_exists($controllerBusiness)) { $api->setTipo("Error"); $api->setMensaje("No existe el Controlador Asociado"); $salida = $api; } else { // Creacion del Objeto Business correspondiente $objBusiness = new $controllerBusiness(); // Creacion del objeto controlador if (file_exists('../model/' . $controller . '.php')) { $obj = new $controller(); } // Verificacion de existencia business if (file_exists('../business/' . $controller . 'Business.php')) { // Identificacion de funcion requestToObjeto $req = 'requestTo' . $controller; // Verificacion de existencia de metodo dentro de clase if (method_exists($objBusiness, $req)) { $obj = $objBusiness->{$req}($request); $withRequest = 1; } } // Identificacion Metodo $metodo = $api->getAccion(); if (!method_exists($objBusiness, $metodo)) { $api->setTipo("Error"); $api->setMensaje("No existe el Metodo Asociado"); $salida = $api; } else { // Llamado a metodo para salida de datos if ($withRequest == 1) { $salida = $objBusiness->{$metodo}($obj); } else { $salida = $objBusiness->{$metodo}(); } } } // Retorno return $salida; }