controllers - Heavyblade/cirrus GitHub Wiki

Controladores - Añade tu código

Al igual que en el modelo MVC, los controladores son los mediadores entre las peticiones y el acceso a los datos, asi tu definirás controladores para manejar tu lógica de negocios y el acceso a los datos del vServer.

Crear controladores:

Para definir el controlador debes de añadir a wApp un objeto javascript con el nombre del controlador seguido de "Controller", dentro de el definiras metodos que contendran la lógica de negocios y que tendrán acceso a la lista de parametros de la petición y la petición misma, finalmente el controlador debe retornar objeto JSON que representa la respuesta.

Definición del controlador

wApp.usersController = {
	index: function(params, request){
		// tu lógica
		return(algun_objeto_json);
	},
	show: function(params, request){
		// tu lógica
		return(algun_objeto_json);
	}
}

Filtros (version >= 1.4)

Si deseas ejecutar una acción antes de que se ejecute el código del controlador puedes añadir un key "before" en el controller y la salida de esta función seran los parámetros de controlador, asi:

wApp.usersController = {
     show: function(params) {
            // El objeto params corresponderá a la salida de la función "before"
            // params.hola => "mundo"
     },
     before: function(params) {
             params.hola = "mundo";
             return(params);
     }
}

Autenticación (version >= 1.4)

Si deseas añadir basic authentication a las acciones de de tu controladores puedes añadir un key "authentication" con los siguientes parámetros:

  • all => Puede ser true o false, para aplicar la autenticación a todas las acciones del controlador.
  • actions => Debe de ser un array que contenga las acciones que deseas que sean protegidas con autenticación.
  • username => usernamete para autenticar.
  • password => Contraseña para autenticat.
  • namespace => (opcional) un espacio para el cual será valido esta autenticación, util si deseas que 2 controllers tengan la misma autenticación o si deseas que un controller tenga unas claves y otro controller otras.

Una vez establecido el navegador automáticamente presentara un cuadro de dialogo solicitando el nombre de usuario y password para realizar la petición.

ejemplo:

wApp.usersController = {
     authentication = {all: true, username: "juan", password: "123", namespace: "test"},
     show: function(params) {
            // El código del controlador no será ejecutado a menos que el usuario entregue los datos
            // de autenticación correctos.
            return({hello: "world"});
     }
}
wApp.usersController = {
     authentication = {actions: ["show"], username: "juan", password: "123", namespace: "test"},
     show: function(params) {
            // La autenticación solo se revisara para la acción "show".
            return({hello: "world"});
     },
     create: function(params) {},
     delete: function(params) {}
}

Headers personalizados (version >= 1.4):

Si te es necesario enviar un header en particular con la respuesta te es posible asignar dicho valor desde el controlador usando la instrucción wApp.responseHeaders.set("Custom", "hello-world");

wApp.usersController = {
     show: function(params) {
            wApp.responseHeaders.set("Custom", "hello-world");
            return({hello: "world"});
            // El navegador o cliente http recibirá un header llamado "Custom" con un valor "hello-world"
     }
}