-
Notifications
You must be signed in to change notification settings - Fork 11
controllers
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.
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);
}
}
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);
}
}
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) {}
}
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"
}
}