adding error handling and other things
This commit is contained in:
		
							
								
								
									
										6
									
								
								bee.json
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								bee.json
									
									
									
									
									
								
							| @@ -7,6 +7,12 @@ | ||||
|   }, | ||||
|   "cmd_args": [], | ||||
|   "envs": [], | ||||
|   "dir_structure": { | ||||
|     "watch_all": true, | ||||
|     "controllers": "controllers", | ||||
|     "models": "models", | ||||
|     "others": ["services"] | ||||
|   }, | ||||
|   "database": { | ||||
|     "driver": "postgres", | ||||
|     "conn": "postgres://postgres:postgre@127.0.0.1:5435/system?sslmode=disable" | ||||
|   | ||||
| @@ -9,7 +9,8 @@ type JsonBasicResponse struct { | ||||
| 	Message string | ||||
| } | ||||
|  | ||||
| const JSON_ERROR int = 500 | ||||
| const JSON_ERROR int = 400 | ||||
| const JSON_INT_ERROR int = 500 | ||||
| const JSON_SUCCESS int = 200 | ||||
|  | ||||
| // BaseController operations for BaseController | ||||
| @@ -17,14 +18,21 @@ type BaseController struct { | ||||
| 	beego.Controller | ||||
| } | ||||
|  | ||||
| func (this *BaseController) ServeJsonError(message string) { | ||||
| func (c *BaseController) ServeJsonError(message string) { | ||||
| 	json := JsonBasicResponse{JSON_ERROR, message} | ||||
| 	this.Data["json"] = &json | ||||
| 	this.ServeJSON() | ||||
| 	c.Data["json"] = &json | ||||
| 	///c.Ctx.ResponseWriter.WriteHeader(400) | ||||
| 	c.ServeJSON() | ||||
| } | ||||
|  | ||||
| func (this *BaseController) ServeJsonSuccess(message string) { | ||||
| 	json := JsonBasicResponse{JSON_SUCCESS, message} | ||||
| 	this.Data["json"] = &json | ||||
| 	this.ServeJSON() | ||||
| func (c *BaseController) ServeJsonErrorWithCode(errorcode int, message string) { | ||||
| 	json := JsonBasicResponse{errorcode, message} | ||||
| 	c.Data["json"] = &json | ||||
| 	c.ServeJSON() | ||||
| } | ||||
|  | ||||
| func (c *BaseController) ServeJsonSuccess(message string) { | ||||
| 	json := JsonBasicResponse{JSON_SUCCESS, message} | ||||
| 	c.Data["json"] = &json | ||||
| 	c.ServeJSON() | ||||
| } | ||||
|   | ||||
| @@ -1,36 +1,29 @@ | ||||
| package controllers | ||||
|  | ||||
| import ( | ||||
| 	//"fmt" | ||||
| 	"github.com/juusechec/jwt-beego" | ||||
| ) | ||||
|  | ||||
| // BaseController operations for APIs | ||||
| type BaseAPIController struct { | ||||
| 	BaseController | ||||
| } | ||||
|  | ||||
| func (this *BaseAPIController) Prepare() { | ||||
| 	if this.Ctx.Input.Method() != "POST" { | ||||
| 		this.ServeJsonError("Method not allowed") | ||||
| 	} | ||||
|  | ||||
| 	//Lo que quieras hacer en todos los controladores | ||||
| 	// O puede ser leído de una cabecera HEADER!! | ||||
| 	tokenString := this.Ctx.Request.Header.Get("X-JWTtoken") | ||||
| 	et := jwtbeego.EasyToken{} | ||||
| 	valid, issuer, _ := et.ValidateToken(tokenString) | ||||
| 	if !valid { | ||||
| 		this.Ctx.Output.SetStatus(401) | ||||
| 		this.ServeJsonError("Invalid Token") | ||||
| 	} | ||||
| 	/* | ||||
| 		//Lo que quieras hacer en todos los controladores | ||||
| 		// O puede ser leído de una cabecera HEADER!! | ||||
| 		tokenString := this.Ctx.Request.Header.Get("X-JWTtoken") | ||||
| 		et := jwtbeego.EasyToken{} | ||||
| 		valid, issuer, _ := et.ValidateToken(tokenString) | ||||
| 		if !valid { | ||||
| 			this.Ctx.Output.SetStatus(401) | ||||
| 			this.ServeJsonError("Invalid Token") | ||||
| 		} | ||||
| 		/* | ||||
| 			userSession := this.GetSession("username") | ||||
|  | ||||
| 	userSession := this.GetSession("username") | ||||
|  | ||||
| 	if userSession == nil || userSession != issuer { | ||||
| 		this.Ctx.Output.SetStatus(401) | ||||
| 		this.ServeJsonError("Invalid Session") | ||||
| 	} | ||||
|  | ||||
| 	return | ||||
| 			if userSession == nil || userSession != issuer { | ||||
| 				this.Ctx.Output.SetStatus(401) | ||||
| 				this.ServeJsonError("Invalid Session") | ||||
| 			} | ||||
| 	*/ | ||||
| 	//return | ||||
| } | ||||
|   | ||||
							
								
								
									
										13
									
								
								controllers/error.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								controllers/error.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| package controllers | ||||
|  | ||||
| type ErrorController struct { | ||||
| 	BaseController | ||||
| } | ||||
|  | ||||
| func (c *ErrorController) Error404() { | ||||
| 	c.ServeJsonErrorWithCode(404, "Not Found") | ||||
| } | ||||
|  | ||||
| func (c *ErrorController) Error500() { | ||||
| 	c.ServeJsonErrorWithCode(500, "Internal Server Error") | ||||
| } | ||||
							
								
								
									
										14
									
								
								controllers/index.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								controllers/index.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| package controllers | ||||
|  | ||||
| // IndexController operations for Index | ||||
| type IndexController struct { | ||||
| 	BaseController | ||||
| } | ||||
|  | ||||
| func (c *IndexController) Get() { | ||||
| 	c.ServeJsonSuccess("multitenant API") | ||||
| } | ||||
|  | ||||
| func (c *IndexController) Post() { | ||||
| 	c.ServeJsonSuccess("multitenant API") | ||||
| } | ||||
| @@ -1 +1 @@ | ||||
| {"/Users/LB/go/src/multitenantStack/controllers":1541579833440000000} | ||||
| {"/Users/LB/go/src/multitenantStack/controllers":1541598684943144901} | ||||
| @@ -46,5 +46,7 @@ func init() { | ||||
| 			), | ||||
| 		), | ||||
| 	) | ||||
| 	beego.Router("/", &controllers.IndexController{}) | ||||
| 	beego.ErrorController(&controllers.ErrorController{}) | ||||
| 	beego.AddNamespace(ns) | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user