Moving files and adding auth
This commit is contained in:
		
							
								
								
									
										8
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | |||||||
|  | # main binary | ||||||
|  | multitenantStack | ||||||
|  |  | ||||||
|  | # IDEs | ||||||
|  | .vscode | ||||||
|  |  | ||||||
|  | # Go vendoring | ||||||
|  | vendor/* | ||||||
| @@ -1,6 +1,6 @@ | |||||||
| # MutlitenantStack | # MutlitenantStack | ||||||
|  |  | ||||||
| This is a project to demonstrate multi tenancy usage in beego using postgres and seperated databases | This is a project to demonstrate multi tenancy usage in beego using postgres and separated databases | ||||||
|  |  | ||||||
| The api was scaffolded using: | The api was scaffolded using: | ||||||
|  |  | ||||||
| @@ -9,3 +9,8 @@ The api was scaffolded using: | |||||||
| then `bee run -downdoc=true`` | then `bee run -downdoc=true`` | ||||||
|  |  | ||||||
| To regenerate docs simply run `bee generate docs` | To regenerate docs simply run `bee generate docs` | ||||||
|  |  | ||||||
|  | ## TODO | ||||||
|  |  | ||||||
|  | - company controller, create databases and so on | ||||||
|  | - Update not found to json | ||||||
|   | |||||||
							
								
								
									
										15
									
								
								bee.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								bee.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | |||||||
|  | { | ||||||
|  |   "version": 0, | ||||||
|  |   "go_install": false, | ||||||
|  |   "scripts": { | ||||||
|  |     "test": "go test -v tests/*.go", | ||||||
|  |     "convey": "goconvey tests/" | ||||||
|  |   }, | ||||||
|  |   "cmd_args": [], | ||||||
|  |   "envs": [], | ||||||
|  |   "database": { | ||||||
|  |     "driver": "postgres", | ||||||
|  |     "conn": "postgres://postgres:postgre@127.0.0.1:5435/system?sslmode=disable" | ||||||
|  |   }, | ||||||
|  |   "enable_reload": true | ||||||
|  | } | ||||||
							
								
								
									
										127
									
								
								controllers/auth.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										127
									
								
								controllers/auth.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,127 @@ | |||||||
|  | package controllers | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	auth "multitenantStack/services/authentication" | ||||||
|  | 	"time" | ||||||
|  |  | ||||||
|  | 	jwt "github.com/dgrijalva/jwt-go" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | // AuthController operations for Auth | ||||||
|  | type AuthController struct { | ||||||
|  | 	BaseController | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // URLMapping ... | ||||||
|  | func (c *AuthController) URLMapping() { | ||||||
|  | 	// This block is used to drastically speed up the annotation -> lookup process | ||||||
|  | 	c.Mapping("Login", c.Login) | ||||||
|  | 	c.Mapping("GetOne", c.GetOne) | ||||||
|  | 	c.Mapping("GetAll", c.GetAll) | ||||||
|  | 	c.Mapping("Put", c.Put) | ||||||
|  | 	c.Mapping("Delete", c.Delete) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Login Get a JWT token for the user | ||||||
|  | // @Title Create | ||||||
|  | // @Description create Auth | ||||||
|  | // @Param	body		body 	models.Auth	true		"body for Auth content" | ||||||
|  | // @Success 201 {object} models.Auth | ||||||
|  | // @Failure 403 body is empty | ||||||
|  | // @router /login [post] | ||||||
|  | func (c *AuthController) Login() { | ||||||
|  |  | ||||||
|  | 	type AuthResponse struct { | ||||||
|  | 		Status int | ||||||
|  | 		Jwt    string | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	if c.Ctx.Input.Method() != "POST" { | ||||||
|  | 		c.ServeJsonError("Method not allowed") | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	//TODO: did the user send us a token? then just validate and tell him he is logged in | ||||||
|  |  | ||||||
|  | 	email := c.GetString("email") | ||||||
|  | 	password := c.GetString("password") | ||||||
|  |  | ||||||
|  | 	//TODO: check against main database, get company id and veryfy password | ||||||
|  | 	companyName := "" | ||||||
|  | 	companyUserId := 5 | ||||||
|  | 	//TODO: if found query the company database to get roleid, and name | ||||||
|  |  | ||||||
|  | 	name := "Lukas" | ||||||
|  | 	roleId := 5 | ||||||
|  |  | ||||||
|  | 	tokenString := "" | ||||||
|  | 	if email == "admin@admin.at" && password == "my password" { | ||||||
|  | 		// The jwtClaims are our trusted clientside session | ||||||
|  | 		tokenString = auth.CreateToken(jwt.MapClaims{ | ||||||
|  | 			"email":         email, | ||||||
|  | 			"companyName":   companyName, | ||||||
|  | 			"companyUserId": companyUserId, | ||||||
|  | 			"name":          name, | ||||||
|  | 			"roleId":        roleId, | ||||||
|  | 			"expires":       time.Now().Unix() + 3600, | ||||||
|  | 		}) | ||||||
|  | 	} else { | ||||||
|  | 		c.ServeJsonError("Invalid user/password") | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	json := AuthResponse{200, tokenString} | ||||||
|  | 	c.Data["json"] = &json | ||||||
|  |  | ||||||
|  | 	c.ServeJSON() | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // GetOne ... | ||||||
|  | // @Title GetOne | ||||||
|  | // @Description get Auth by id | ||||||
|  | // @Param	id		path 	string	true		"The key for staticblock" | ||||||
|  | // @Success 200 {object} models.Auth | ||||||
|  | // @Failure 403 :id is empty | ||||||
|  | // @router /:id [get] | ||||||
|  | func (c *AuthController) GetOne() { | ||||||
|  |  | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // GetAll ... | ||||||
|  | // @Title GetAll | ||||||
|  | // @Description get Auth | ||||||
|  | // @Param	query	query	string	false	"Filter. e.g. col1:v1,col2:v2 ..." | ||||||
|  | // @Param	fields	query	string	false	"Fields returned. e.g. col1,col2 ..." | ||||||
|  | // @Param	sortby	query	string	false	"Sorted-by fields. e.g. col1,col2 ..." | ||||||
|  | // @Param	order	query	string	false	"Order corresponding to each sortby field, if single value, apply to all sortby fields. e.g. desc,asc ..." | ||||||
|  | // @Param	limit	query	string	false	"Limit the size of result set. Must be an integer" | ||||||
|  | // @Param	offset	query	string	false	"Start position of result set. Must be an integer" | ||||||
|  | // @Success 200 {object} models.Auth | ||||||
|  | // @Failure 403 | ||||||
|  | // @router / [get] | ||||||
|  | func (c *AuthController) GetAll() { | ||||||
|  |  | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Put ... | ||||||
|  | // @Title Put | ||||||
|  | // @Description update the Auth | ||||||
|  | // @Param	id		path 	string	true		"The id you want to update" | ||||||
|  | // @Param	body		body 	models.Auth	true		"body for Auth content" | ||||||
|  | // @Success 200 {object} models.Auth | ||||||
|  | // @Failure 403 :id is not int | ||||||
|  | // @router /:id [put] | ||||||
|  | func (c *AuthController) Put() { | ||||||
|  |  | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Delete ... | ||||||
|  | // @Title Delete | ||||||
|  | // @Description delete the Auth | ||||||
|  | // @Param	id		path 	string	true		"The id you want to delete" | ||||||
|  | // @Success 200 {string} delete success! | ||||||
|  | // @Failure 403 id is empty | ||||||
|  | // @router /:id [delete] | ||||||
|  | func (c *AuthController) Delete() { | ||||||
|  |  | ||||||
|  | } | ||||||
							
								
								
									
										30
									
								
								controllers/base.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								controllers/base.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,30 @@ | |||||||
|  | package controllers | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"github.com/astaxie/beego" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | type JsonBasicResponse struct { | ||||||
|  | 	Status  int | ||||||
|  | 	Message string | ||||||
|  | } | ||||||
|  |  | ||||||
|  | const JSON_ERROR int = 500 | ||||||
|  | const JSON_SUCCESS int = 200 | ||||||
|  |  | ||||||
|  | // BaseController operations for BaseController | ||||||
|  | type BaseController struct { | ||||||
|  | 	beego.Controller | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (this *BaseController) ServeJsonError(message string) { | ||||||
|  | 	json := JsonBasicResponse{JSON_ERROR, message} | ||||||
|  | 	this.Data["json"] = &json | ||||||
|  | 	this.ServeJSON() | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func (this *BaseController) ServeJsonSuccess(message string) { | ||||||
|  | 	json := JsonBasicResponse{JSON_SUCCESS, message} | ||||||
|  | 	this.Data["json"] = &json | ||||||
|  | 	this.ServeJSON() | ||||||
|  | } | ||||||
							
								
								
									
										36
									
								
								controllers/baseAPI.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								controllers/baseAPI.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,36 @@ | |||||||
|  | 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") | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	userSession := this.GetSession("username") | ||||||
|  |  | ||||||
|  | 	if userSession == nil || userSession != issuer { | ||||||
|  | 		this.Ctx.Output.SetStatus(401) | ||||||
|  | 		this.ServeJsonError("Invalid Session") | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	return | ||||||
|  | } | ||||||
							
								
								
									
										1
									
								
								lastupdate.tmp
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										1
									
								
								lastupdate.tmp
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | {"/Users/LB/go/src/multitenantStack/controllers":1541579833440000000} | ||||||
							
								
								
									
										210
									
								
								routers/commentsRouter_controllers.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										210
									
								
								routers/commentsRouter_controllers.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,210 @@ | |||||||
|  | package routers | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"github.com/astaxie/beego" | ||||||
|  | 	"github.com/astaxie/beego/context/param" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | func init() { | ||||||
|  |  | ||||||
|  | 	beego.GlobalControllerRouter["multitenantStack/controllers:AuthController"] = append(beego.GlobalControllerRouter["multitenantStack/controllers:AuthController"], | ||||||
|  | 		beego.ControllerComments{ | ||||||
|  | 			Method: "GetAll", | ||||||
|  | 			Router: `/`, | ||||||
|  | 			AllowHTTPMethods: []string{"get"}, | ||||||
|  | 			MethodParams: param.Make(), | ||||||
|  | 			Params: nil}) | ||||||
|  |  | ||||||
|  | 	beego.GlobalControllerRouter["multitenantStack/controllers:AuthController"] = append(beego.GlobalControllerRouter["multitenantStack/controllers:AuthController"], | ||||||
|  | 		beego.ControllerComments{ | ||||||
|  | 			Method: "GetOne", | ||||||
|  | 			Router: `/:id`, | ||||||
|  | 			AllowHTTPMethods: []string{"get"}, | ||||||
|  | 			MethodParams: param.Make(), | ||||||
|  | 			Params: nil}) | ||||||
|  |  | ||||||
|  | 	beego.GlobalControllerRouter["multitenantStack/controllers:AuthController"] = append(beego.GlobalControllerRouter["multitenantStack/controllers:AuthController"], | ||||||
|  | 		beego.ControllerComments{ | ||||||
|  | 			Method: "Put", | ||||||
|  | 			Router: `/:id`, | ||||||
|  | 			AllowHTTPMethods: []string{"put"}, | ||||||
|  | 			MethodParams: param.Make(), | ||||||
|  | 			Params: nil}) | ||||||
|  |  | ||||||
|  | 	beego.GlobalControllerRouter["multitenantStack/controllers:AuthController"] = append(beego.GlobalControllerRouter["multitenantStack/controllers:AuthController"], | ||||||
|  | 		beego.ControllerComments{ | ||||||
|  | 			Method: "Delete", | ||||||
|  | 			Router: `/:id`, | ||||||
|  | 			AllowHTTPMethods: []string{"delete"}, | ||||||
|  | 			MethodParams: param.Make(), | ||||||
|  | 			Params: nil}) | ||||||
|  |  | ||||||
|  | 	beego.GlobalControllerRouter["multitenantStack/controllers:AuthController"] = append(beego.GlobalControllerRouter["multitenantStack/controllers:AuthController"], | ||||||
|  | 		beego.ControllerComments{ | ||||||
|  | 			Method: "Login", | ||||||
|  | 			Router: `/login`, | ||||||
|  | 			AllowHTTPMethods: []string{"post"}, | ||||||
|  | 			MethodParams: param.Make(), | ||||||
|  | 			Params: nil}) | ||||||
|  |  | ||||||
|  | 	beego.GlobalControllerRouter["multitenantStack/controllers:CompanyDataController"] = append(beego.GlobalControllerRouter["multitenantStack/controllers:CompanyDataController"], | ||||||
|  | 		beego.ControllerComments{ | ||||||
|  | 			Method: "Post", | ||||||
|  | 			Router: `/`, | ||||||
|  | 			AllowHTTPMethods: []string{"post"}, | ||||||
|  | 			MethodParams: param.Make(), | ||||||
|  | 			Params: nil}) | ||||||
|  |  | ||||||
|  | 	beego.GlobalControllerRouter["multitenantStack/controllers:CompanyDataController"] = append(beego.GlobalControllerRouter["multitenantStack/controllers:CompanyDataController"], | ||||||
|  | 		beego.ControllerComments{ | ||||||
|  | 			Method: "GetAll", | ||||||
|  | 			Router: `/`, | ||||||
|  | 			AllowHTTPMethods: []string{"get"}, | ||||||
|  | 			MethodParams: param.Make(), | ||||||
|  | 			Params: nil}) | ||||||
|  |  | ||||||
|  | 	beego.GlobalControllerRouter["multitenantStack/controllers:CompanyDataController"] = append(beego.GlobalControllerRouter["multitenantStack/controllers:CompanyDataController"], | ||||||
|  | 		beego.ControllerComments{ | ||||||
|  | 			Method: "GetOne", | ||||||
|  | 			Router: `/:id`, | ||||||
|  | 			AllowHTTPMethods: []string{"get"}, | ||||||
|  | 			MethodParams: param.Make(), | ||||||
|  | 			Params: nil}) | ||||||
|  |  | ||||||
|  | 	beego.GlobalControllerRouter["multitenantStack/controllers:CompanyDataController"] = append(beego.GlobalControllerRouter["multitenantStack/controllers:CompanyDataController"], | ||||||
|  | 		beego.ControllerComments{ | ||||||
|  | 			Method: "Put", | ||||||
|  | 			Router: `/:id`, | ||||||
|  | 			AllowHTTPMethods: []string{"put"}, | ||||||
|  | 			MethodParams: param.Make(), | ||||||
|  | 			Params: nil}) | ||||||
|  |  | ||||||
|  | 	beego.GlobalControllerRouter["multitenantStack/controllers:CompanyDataController"] = append(beego.GlobalControllerRouter["multitenantStack/controllers:CompanyDataController"], | ||||||
|  | 		beego.ControllerComments{ | ||||||
|  | 			Method: "Delete", | ||||||
|  | 			Router: `/:id`, | ||||||
|  | 			AllowHTTPMethods: []string{"delete"}, | ||||||
|  | 			MethodParams: param.Make(), | ||||||
|  | 			Params: nil}) | ||||||
|  |  | ||||||
|  | 	beego.GlobalControllerRouter["multitenantStack/controllers:CompanyUserController"] = append(beego.GlobalControllerRouter["multitenantStack/controllers:CompanyUserController"], | ||||||
|  | 		beego.ControllerComments{ | ||||||
|  | 			Method: "Post", | ||||||
|  | 			Router: `/`, | ||||||
|  | 			AllowHTTPMethods: []string{"post"}, | ||||||
|  | 			MethodParams: param.Make(), | ||||||
|  | 			Params: nil}) | ||||||
|  |  | ||||||
|  | 	beego.GlobalControllerRouter["multitenantStack/controllers:CompanyUserController"] = append(beego.GlobalControllerRouter["multitenantStack/controllers:CompanyUserController"], | ||||||
|  | 		beego.ControllerComments{ | ||||||
|  | 			Method: "GetAll", | ||||||
|  | 			Router: `/`, | ||||||
|  | 			AllowHTTPMethods: []string{"get"}, | ||||||
|  | 			MethodParams: param.Make(), | ||||||
|  | 			Params: nil}) | ||||||
|  |  | ||||||
|  | 	beego.GlobalControllerRouter["multitenantStack/controllers:CompanyUserController"] = append(beego.GlobalControllerRouter["multitenantStack/controllers:CompanyUserController"], | ||||||
|  | 		beego.ControllerComments{ | ||||||
|  | 			Method: "GetOne", | ||||||
|  | 			Router: `/:id`, | ||||||
|  | 			AllowHTTPMethods: []string{"get"}, | ||||||
|  | 			MethodParams: param.Make(), | ||||||
|  | 			Params: nil}) | ||||||
|  |  | ||||||
|  | 	beego.GlobalControllerRouter["multitenantStack/controllers:CompanyUserController"] = append(beego.GlobalControllerRouter["multitenantStack/controllers:CompanyUserController"], | ||||||
|  | 		beego.ControllerComments{ | ||||||
|  | 			Method: "Put", | ||||||
|  | 			Router: `/:id`, | ||||||
|  | 			AllowHTTPMethods: []string{"put"}, | ||||||
|  | 			MethodParams: param.Make(), | ||||||
|  | 			Params: nil}) | ||||||
|  |  | ||||||
|  | 	beego.GlobalControllerRouter["multitenantStack/controllers:CompanyUserController"] = append(beego.GlobalControllerRouter["multitenantStack/controllers:CompanyUserController"], | ||||||
|  | 		beego.ControllerComments{ | ||||||
|  | 			Method: "Delete", | ||||||
|  | 			Router: `/:id`, | ||||||
|  | 			AllowHTTPMethods: []string{"delete"}, | ||||||
|  | 			MethodParams: param.Make(), | ||||||
|  | 			Params: nil}) | ||||||
|  |  | ||||||
|  | 	beego.GlobalControllerRouter["multitenantStack/controllers:ContactController"] = append(beego.GlobalControllerRouter["multitenantStack/controllers:ContactController"], | ||||||
|  | 		beego.ControllerComments{ | ||||||
|  | 			Method: "Post", | ||||||
|  | 			Router: `/`, | ||||||
|  | 			AllowHTTPMethods: []string{"post"}, | ||||||
|  | 			MethodParams: param.Make(), | ||||||
|  | 			Params: nil}) | ||||||
|  |  | ||||||
|  | 	beego.GlobalControllerRouter["multitenantStack/controllers:ContactController"] = append(beego.GlobalControllerRouter["multitenantStack/controllers:ContactController"], | ||||||
|  | 		beego.ControllerComments{ | ||||||
|  | 			Method: "GetAll", | ||||||
|  | 			Router: `/`, | ||||||
|  | 			AllowHTTPMethods: []string{"get"}, | ||||||
|  | 			MethodParams: param.Make(), | ||||||
|  | 			Params: nil}) | ||||||
|  |  | ||||||
|  | 	beego.GlobalControllerRouter["multitenantStack/controllers:ContactController"] = append(beego.GlobalControllerRouter["multitenantStack/controllers:ContactController"], | ||||||
|  | 		beego.ControllerComments{ | ||||||
|  | 			Method: "GetOne", | ||||||
|  | 			Router: `/:id`, | ||||||
|  | 			AllowHTTPMethods: []string{"get"}, | ||||||
|  | 			MethodParams: param.Make(), | ||||||
|  | 			Params: nil}) | ||||||
|  |  | ||||||
|  | 	beego.GlobalControllerRouter["multitenantStack/controllers:ContactController"] = append(beego.GlobalControllerRouter["multitenantStack/controllers:ContactController"], | ||||||
|  | 		beego.ControllerComments{ | ||||||
|  | 			Method: "Put", | ||||||
|  | 			Router: `/:id`, | ||||||
|  | 			AllowHTTPMethods: []string{"put"}, | ||||||
|  | 			MethodParams: param.Make(), | ||||||
|  | 			Params: nil}) | ||||||
|  |  | ||||||
|  | 	beego.GlobalControllerRouter["multitenantStack/controllers:ContactController"] = append(beego.GlobalControllerRouter["multitenantStack/controllers:ContactController"], | ||||||
|  | 		beego.ControllerComments{ | ||||||
|  | 			Method: "Delete", | ||||||
|  | 			Router: `/:id`, | ||||||
|  | 			AllowHTTPMethods: []string{"delete"}, | ||||||
|  | 			MethodParams: param.Make(), | ||||||
|  | 			Params: nil}) | ||||||
|  |  | ||||||
|  | 	beego.GlobalControllerRouter["multitenantStack/controllers:PostController"] = append(beego.GlobalControllerRouter["multitenantStack/controllers:PostController"], | ||||||
|  | 		beego.ControllerComments{ | ||||||
|  | 			Method: "Post", | ||||||
|  | 			Router: `/`, | ||||||
|  | 			AllowHTTPMethods: []string{"post"}, | ||||||
|  | 			MethodParams: param.Make(), | ||||||
|  | 			Params: nil}) | ||||||
|  |  | ||||||
|  | 	beego.GlobalControllerRouter["multitenantStack/controllers:PostController"] = append(beego.GlobalControllerRouter["multitenantStack/controllers:PostController"], | ||||||
|  | 		beego.ControllerComments{ | ||||||
|  | 			Method: "GetAll", | ||||||
|  | 			Router: `/`, | ||||||
|  | 			AllowHTTPMethods: []string{"get"}, | ||||||
|  | 			MethodParams: param.Make(), | ||||||
|  | 			Params: nil}) | ||||||
|  |  | ||||||
|  | 	beego.GlobalControllerRouter["multitenantStack/controllers:PostController"] = append(beego.GlobalControllerRouter["multitenantStack/controllers:PostController"], | ||||||
|  | 		beego.ControllerComments{ | ||||||
|  | 			Method: "GetOne", | ||||||
|  | 			Router: `/:id`, | ||||||
|  | 			AllowHTTPMethods: []string{"get"}, | ||||||
|  | 			MethodParams: param.Make(), | ||||||
|  | 			Params: nil}) | ||||||
|  |  | ||||||
|  | 	beego.GlobalControllerRouter["multitenantStack/controllers:PostController"] = append(beego.GlobalControllerRouter["multitenantStack/controllers:PostController"], | ||||||
|  | 		beego.ControllerComments{ | ||||||
|  | 			Method: "Put", | ||||||
|  | 			Router: `/:id`, | ||||||
|  | 			AllowHTTPMethods: []string{"put"}, | ||||||
|  | 			MethodParams: param.Make(), | ||||||
|  | 			Params: nil}) | ||||||
|  |  | ||||||
|  | 	beego.GlobalControllerRouter["multitenantStack/controllers:PostController"] = append(beego.GlobalControllerRouter["multitenantStack/controllers:PostController"], | ||||||
|  | 		beego.ControllerComments{ | ||||||
|  | 			Method: "Delete", | ||||||
|  | 			Router: `/:id`, | ||||||
|  | 			AllowHTTPMethods: []string{"delete"}, | ||||||
|  | 			MethodParams: param.Make(), | ||||||
|  | 			Params: nil}) | ||||||
|  |  | ||||||
|  | } | ||||||
| @@ -22,7 +22,7 @@ func init() { | |||||||
| 			), | 			), | ||||||
| 		), | 		), | ||||||
|  |  | ||||||
| 		beego.NSNamespace("/company_data", | 		beego.NSNamespace("/companydata", | ||||||
| 			beego.NSInclude( | 			beego.NSInclude( | ||||||
| 				&controllers.CompanyDataController{}, | 				&controllers.CompanyDataController{}, | ||||||
| 			), | 			), | ||||||
| @@ -34,11 +34,17 @@ func init() { | |||||||
| 			), | 			), | ||||||
| 		), | 		), | ||||||
|  |  | ||||||
| 		beego.NSNamespace("/company_user", | 		beego.NSNamespace("/user", | ||||||
| 			beego.NSInclude( | 			beego.NSInclude( | ||||||
| 				&controllers.CompanyUserController{}, | 				&controllers.CompanyUserController{}, | ||||||
| 			), | 			), | ||||||
| 		), | 		), | ||||||
|  |  | ||||||
|  | 		beego.NSNamespace("/auth", | ||||||
|  | 			beego.NSInclude( | ||||||
|  | 				&controllers.AuthController{}, | ||||||
|  | 			), | ||||||
|  | 		), | ||||||
| 	) | 	) | ||||||
| 	beego.AddNamespace(ns) | 	beego.AddNamespace(ns) | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										56
									
								
								services/authentication/authentication.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								services/authentication/authentication.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,56 @@ | |||||||
|  | package services | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"crypto/rand" | ||||||
|  | 	"fmt" | ||||||
|  |  | ||||||
|  | 	jwt "github.com/dgrijalva/jwt-go" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | var hmacSecret []byte | ||||||
|  |  | ||||||
|  | func GenerateSecret() []byte { | ||||||
|  | 	b := make([]byte, 32) | ||||||
|  | 	rand.Read(b) | ||||||
|  | 	return b | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func InitAuthService() { | ||||||
|  | 	hmacSecret = GenerateSecret() | ||||||
|  | 	// TODO: This needs to be replaced with reading rsa keys, there needs to be a automatic generation of these if they do not exist | ||||||
|  |  | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func Validate(Token string) (bool, jwt.Token) { | ||||||
|  | 	token, err := jwt.Parse(Token, func(token *jwt.Token) (interface{}, error) { | ||||||
|  | 		if _, ok := token.Method.(*jwt.SigningMethodHMAC); !ok { | ||||||
|  | 			return nil, fmt.Errorf("Unexpected signing method: %v", token.Header["alg"]) | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		return hmacSecret, nil | ||||||
|  | 	}) | ||||||
|  |  | ||||||
|  | 	if err == nil && token.Valid { | ||||||
|  | 		fmt.Println("Token is valid") | ||||||
|  | 		return true, *token | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	fmt.Println("Token Validation failed") | ||||||
|  | 	return false, *token | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func CreateToken(Claims jwt.MapClaims) string { | ||||||
|  |  | ||||||
|  | 	// Create a new token object, specifying signing method and the claims | ||||||
|  | 	// you would like it to contain. | ||||||
|  |  | ||||||
|  | 	token := jwt.NewWithClaims(jwt.SigningMethodHS256, Claims) | ||||||
|  |  | ||||||
|  | 	// Sign and get the complete encoded token as a string using the secret | ||||||
|  | 	tokenString, err := token.SignedString(hmacSecret) | ||||||
|  | 	if err != nil { | ||||||
|  | 		fmt.Println(err.Error()) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	return tokenString | ||||||
|  | } | ||||||
							
								
								
									
										64
									
								
								services/companydb/companydb.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								services/companydb/companydb.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,64 @@ | |||||||
|  | package services | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"database/sql" | ||||||
|  | 	"fmt" | ||||||
|  | 	"os" | ||||||
|  |  | ||||||
|  | 	"github.com/astaxie/beego/orm" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | var dbs map[string]*sql.DB | ||||||
|  |  | ||||||
|  | // InitCompanyService Init companydb service and open system db connection | ||||||
|  | func InitCompanyService() { | ||||||
|  | 	fmt.Println("Hello from init") // test if init gets called from each orm | ||||||
|  | 	dbs := make(map[string]*sql.DB) | ||||||
|  |  | ||||||
|  | 	orm.RegisterDataBase("default", "postgres", "host=127.0.0.1 port=5435 user=postgres password=postgre sslmode=disable") | ||||||
|  |  | ||||||
|  | 	systemDB, err := sql.Open("postgres", "host=127.0.0.1 port=5435 user=postgres password=postgre dbname=company5 sslmode=disable") | ||||||
|  | 	if err != nil { | ||||||
|  | 		fmt.Println("Fatal: could not connect to db, exiting... Error:", err) | ||||||
|  | 		os.Exit(1) | ||||||
|  | 	} | ||||||
|  | 	dbs["system"] = systemDB | ||||||
|  |  | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // GetDatabase Get orm and user information | ||||||
|  | func GetDatabase(token string) { | ||||||
|  | 	// validate token | ||||||
|  | 	// retrieve correct user/database | ||||||
|  | 	// check if open first | ||||||
|  | 	// try to open second | ||||||
|  | 	// return error otherwise | ||||||
|  | 	// return db with orm or error | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // CreateDatabase Create a database by copying the template | ||||||
|  | func CreateDatabase(token string) { | ||||||
|  | 	/* | ||||||
|  | 			db, err = sql.Open("postgres", "host=127.0.0.1 port=5435 user=postgres password=postgre dbname=company5 sslmode=disable") | ||||||
|  | 		if err != nil { | ||||||
|  | 			log.Fatal(err) | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		or, err := orm.NewOrmWithDB("postgres", "temp", db) | ||||||
|  | 	*/ | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // DeleteDatabase Delete an entire database, this is very very dangerous :-) | ||||||
|  | func DeleteDatabase(token string) { | ||||||
|  | 	/* | ||||||
|  | 		db.Close() | ||||||
|  | 		fmt.Println("Closed company5") | ||||||
|  | 		//} | ||||||
|  |  | ||||||
|  | 		res, err := o.Raw("DROP DATABASE company5;").Exec() | ||||||
|  | 		if err == nil { | ||||||
|  | 			num, _ := res.RowsAffected() | ||||||
|  | 			fmt.Println("mysql row affected number: ", num) | ||||||
|  | 		} | ||||||
|  | 	*/ | ||||||
|  | } | ||||||
| @@ -15,10 +15,188 @@ | |||||||
|     }, |     }, | ||||||
|     "basePath": "/v1", |     "basePath": "/v1", | ||||||
|     "paths": { |     "paths": { | ||||||
|         "/company_data/": { |         "/auth/": { | ||||||
|             "get": { |             "get": { | ||||||
|                 "tags": [ |                 "tags": [ | ||||||
|                     "company_data" |                     "auth" | ||||||
|  |                 ], | ||||||
|  |                 "description": "get Auth", | ||||||
|  |                 "operationId": "AuthController.GetAll", | ||||||
|  |                 "parameters": [ | ||||||
|  |                     { | ||||||
|  |                         "in": "query", | ||||||
|  |                         "name": "query", | ||||||
|  |                         "description": "Filter. e.g. col1:v1,col2:v2 ...", | ||||||
|  |                         "type": "string" | ||||||
|  |                     }, | ||||||
|  |                     { | ||||||
|  |                         "in": "query", | ||||||
|  |                         "name": "fields", | ||||||
|  |                         "description": "Fields returned. e.g. col1,col2 ...", | ||||||
|  |                         "type": "string" | ||||||
|  |                     }, | ||||||
|  |                     { | ||||||
|  |                         "in": "query", | ||||||
|  |                         "name": "sortby", | ||||||
|  |                         "description": "Sorted-by fields. e.g. col1,col2 ...", | ||||||
|  |                         "type": "string" | ||||||
|  |                     }, | ||||||
|  |                     { | ||||||
|  |                         "in": "query", | ||||||
|  |                         "name": "order", | ||||||
|  |                         "description": "Order corresponding to each sortby field, if single value, apply to all sortby fields. e.g. desc,asc ...", | ||||||
|  |                         "type": "string" | ||||||
|  |                     }, | ||||||
|  |                     { | ||||||
|  |                         "in": "query", | ||||||
|  |                         "name": "limit", | ||||||
|  |                         "description": "Limit the size of result set. Must be an integer", | ||||||
|  |                         "type": "string" | ||||||
|  |                     }, | ||||||
|  |                     { | ||||||
|  |                         "in": "query", | ||||||
|  |                         "name": "offset", | ||||||
|  |                         "description": "Start position of result set. Must be an integer", | ||||||
|  |                         "type": "string" | ||||||
|  |                     } | ||||||
|  |                 ], | ||||||
|  |                 "responses": { | ||||||
|  |                     "200": { | ||||||
|  |                         "description": "", | ||||||
|  |                         "schema": { | ||||||
|  |                             "$ref": "#/definitions/.Auth" | ||||||
|  |                         } | ||||||
|  |                     }, | ||||||
|  |                     "403": { | ||||||
|  |                         "description": "" | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "/auth/login": { | ||||||
|  |             "post": { | ||||||
|  |                 "tags": [ | ||||||
|  |                     "auth" | ||||||
|  |                 ], | ||||||
|  |                 "description": "create Auth", | ||||||
|  |                 "operationId": "AuthController.Create", | ||||||
|  |                 "parameters": [ | ||||||
|  |                     { | ||||||
|  |                         "in": "body", | ||||||
|  |                         "name": "body", | ||||||
|  |                         "description": "body for Auth content", | ||||||
|  |                         "required": true, | ||||||
|  |                         "schema": { | ||||||
|  |                             "$ref": "#/definitions/.Auth" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 ], | ||||||
|  |                 "responses": { | ||||||
|  |                     "201": { | ||||||
|  |                         "description": "", | ||||||
|  |                         "schema": { | ||||||
|  |                             "$ref": "#/definitions/.Auth" | ||||||
|  |                         } | ||||||
|  |                     }, | ||||||
|  |                     "403": { | ||||||
|  |                         "description": "body is empty" | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "/auth/{id}": { | ||||||
|  |             "get": { | ||||||
|  |                 "tags": [ | ||||||
|  |                     "auth" | ||||||
|  |                 ], | ||||||
|  |                 "description": "get Auth by id", | ||||||
|  |                 "operationId": "AuthController.GetOne", | ||||||
|  |                 "parameters": [ | ||||||
|  |                     { | ||||||
|  |                         "in": "path", | ||||||
|  |                         "name": "id", | ||||||
|  |                         "description": "The key for staticblock", | ||||||
|  |                         "required": true, | ||||||
|  |                         "type": "string" | ||||||
|  |                     } | ||||||
|  |                 ], | ||||||
|  |                 "responses": { | ||||||
|  |                     "200": { | ||||||
|  |                         "description": "", | ||||||
|  |                         "schema": { | ||||||
|  |                             "$ref": "#/definitions/.Auth" | ||||||
|  |                         } | ||||||
|  |                     }, | ||||||
|  |                     "403": { | ||||||
|  |                         "description": ":id is empty" | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "put": { | ||||||
|  |                 "tags": [ | ||||||
|  |                     "auth" | ||||||
|  |                 ], | ||||||
|  |                 "description": "update the Auth", | ||||||
|  |                 "operationId": "AuthController.Put", | ||||||
|  |                 "parameters": [ | ||||||
|  |                     { | ||||||
|  |                         "in": "path", | ||||||
|  |                         "name": "id", | ||||||
|  |                         "description": "The id you want to update", | ||||||
|  |                         "required": true, | ||||||
|  |                         "type": "string" | ||||||
|  |                     }, | ||||||
|  |                     { | ||||||
|  |                         "in": "body", | ||||||
|  |                         "name": "body", | ||||||
|  |                         "description": "body for Auth content", | ||||||
|  |                         "required": true, | ||||||
|  |                         "schema": { | ||||||
|  |                             "$ref": "#/definitions/.Auth" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 ], | ||||||
|  |                 "responses": { | ||||||
|  |                     "200": { | ||||||
|  |                         "description": "", | ||||||
|  |                         "schema": { | ||||||
|  |                             "$ref": "#/definitions/.Auth" | ||||||
|  |                         } | ||||||
|  |                     }, | ||||||
|  |                     "403": { | ||||||
|  |                         "description": ":id is not int" | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "delete": { | ||||||
|  |                 "tags": [ | ||||||
|  |                     "auth" | ||||||
|  |                 ], | ||||||
|  |                 "description": "delete the Auth", | ||||||
|  |                 "operationId": "AuthController.Delete", | ||||||
|  |                 "parameters": [ | ||||||
|  |                     { | ||||||
|  |                         "in": "path", | ||||||
|  |                         "name": "id", | ||||||
|  |                         "description": "The id you want to delete", | ||||||
|  |                         "required": true, | ||||||
|  |                         "type": "string" | ||||||
|  |                     } | ||||||
|  |                 ], | ||||||
|  |                 "responses": { | ||||||
|  |                     "200": { | ||||||
|  |                         "description": "{string} delete success!" | ||||||
|  |                     }, | ||||||
|  |                     "403": { | ||||||
|  |                         "description": "id is empty" | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "/companydata/": { | ||||||
|  |             "get": { | ||||||
|  |                 "tags": [ | ||||||
|  |                     "companydata" | ||||||
|                 ], |                 ], | ||||||
|                 "description": "get CompanyData", |                 "description": "get CompanyData", | ||||||
|                 "operationId": "CompanyDataController.Get All", |                 "operationId": "CompanyDataController.Get All", | ||||||
| @@ -74,7 +252,7 @@ | |||||||
|             }, |             }, | ||||||
|             "post": { |             "post": { | ||||||
|                 "tags": [ |                 "tags": [ | ||||||
|                     "company_data" |                     "companydata" | ||||||
|                 ], |                 ], | ||||||
|                 "description": "create CompanyData", |                 "description": "create CompanyData", | ||||||
|                 "operationId": "CompanyDataController.Post", |                 "operationId": "CompanyDataController.Post", | ||||||
| @@ -99,10 +277,10 @@ | |||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "/company_data/{id}": { |         "/companydata/{id}": { | ||||||
|             "get": { |             "get": { | ||||||
|                 "tags": [ |                 "tags": [ | ||||||
|                     "company_data" |                     "companydata" | ||||||
|                 ], |                 ], | ||||||
|                 "description": "get CompanyData by id", |                 "description": "get CompanyData by id", | ||||||
|                 "operationId": "CompanyDataController.Get One", |                 "operationId": "CompanyDataController.Get One", | ||||||
| @@ -129,7 +307,7 @@ | |||||||
|             }, |             }, | ||||||
|             "put": { |             "put": { | ||||||
|                 "tags": [ |                 "tags": [ | ||||||
|                     "company_data" |                     "companydata" | ||||||
|                 ], |                 ], | ||||||
|                 "description": "update the CompanyData", |                 "description": "update the CompanyData", | ||||||
|                 "operationId": "CompanyDataController.Put", |                 "operationId": "CompanyDataController.Put", | ||||||
| @@ -165,7 +343,7 @@ | |||||||
|             }, |             }, | ||||||
|             "delete": { |             "delete": { | ||||||
|                 "tags": [ |                 "tags": [ | ||||||
|                     "company_data" |                     "companydata" | ||||||
|                 ], |                 ], | ||||||
|                 "description": "delete the CompanyData", |                 "description": "delete the CompanyData", | ||||||
|                 "operationId": "CompanyDataController.Delete", |                 "operationId": "CompanyDataController.Delete", | ||||||
| @@ -188,179 +366,6 @@ | |||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "/company_user/": { |  | ||||||
|             "get": { |  | ||||||
|                 "tags": [ |  | ||||||
|                     "company_user" |  | ||||||
|                 ], |  | ||||||
|                 "description": "get CompanyUser", |  | ||||||
|                 "operationId": "CompanyUserController.Get All", |  | ||||||
|                 "parameters": [ |  | ||||||
|                     { |  | ||||||
|                         "in": "query", |  | ||||||
|                         "name": "query", |  | ||||||
|                         "description": "Filter. e.g. col1:v1,col2:v2 ...", |  | ||||||
|                         "type": "string" |  | ||||||
|                     }, |  | ||||||
|                     { |  | ||||||
|                         "in": "query", |  | ||||||
|                         "name": "fields", |  | ||||||
|                         "description": "Fields returned. e.g. col1,col2 ...", |  | ||||||
|                         "type": "string" |  | ||||||
|                     }, |  | ||||||
|                     { |  | ||||||
|                         "in": "query", |  | ||||||
|                         "name": "sortby", |  | ||||||
|                         "description": "Sorted-by fields. e.g. col1,col2 ...", |  | ||||||
|                         "type": "string" |  | ||||||
|                     }, |  | ||||||
|                     { |  | ||||||
|                         "in": "query", |  | ||||||
|                         "name": "order", |  | ||||||
|                         "description": "Order corresponding to each sortby field, if single value, apply to all sortby fields. e.g. desc,asc ...", |  | ||||||
|                         "type": "string" |  | ||||||
|                     }, |  | ||||||
|                     { |  | ||||||
|                         "in": "query", |  | ||||||
|                         "name": "limit", |  | ||||||
|                         "description": "Limit the size of result set. Must be an integer", |  | ||||||
|                         "type": "string" |  | ||||||
|                     }, |  | ||||||
|                     { |  | ||||||
|                         "in": "query", |  | ||||||
|                         "name": "offset", |  | ||||||
|                         "description": "Start position of result set. Must be an integer", |  | ||||||
|                         "type": "string" |  | ||||||
|                     } |  | ||||||
|                 ], |  | ||||||
|                 "responses": { |  | ||||||
|                     "200": { |  | ||||||
|                         "description": "", |  | ||||||
|                         "schema": { |  | ||||||
|                             "$ref": "#/definitions/models.CompanyUser" |  | ||||||
|                         } |  | ||||||
|                     }, |  | ||||||
|                     "403": { |  | ||||||
|                         "description": "" |  | ||||||
|                     } |  | ||||||
|                 } |  | ||||||
|             }, |  | ||||||
|             "post": { |  | ||||||
|                 "tags": [ |  | ||||||
|                     "company_user" |  | ||||||
|                 ], |  | ||||||
|                 "description": "create CompanyUser", |  | ||||||
|                 "operationId": "CompanyUserController.Post", |  | ||||||
|                 "parameters": [ |  | ||||||
|                     { |  | ||||||
|                         "in": "body", |  | ||||||
|                         "name": "body", |  | ||||||
|                         "description": "body for CompanyUser content", |  | ||||||
|                         "required": true, |  | ||||||
|                         "schema": { |  | ||||||
|                             "$ref": "#/definitions/models.CompanyUser" |  | ||||||
|                         } |  | ||||||
|                     } |  | ||||||
|                 ], |  | ||||||
|                 "responses": { |  | ||||||
|                     "201": { |  | ||||||
|                         "description": "{int} models.CompanyUser" |  | ||||||
|                     }, |  | ||||||
|                     "403": { |  | ||||||
|                         "description": "body is empty" |  | ||||||
|                     } |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         }, |  | ||||||
|         "/company_user/{id}": { |  | ||||||
|             "get": { |  | ||||||
|                 "tags": [ |  | ||||||
|                     "company_user" |  | ||||||
|                 ], |  | ||||||
|                 "description": "get CompanyUser by id", |  | ||||||
|                 "operationId": "CompanyUserController.Get One", |  | ||||||
|                 "parameters": [ |  | ||||||
|                     { |  | ||||||
|                         "in": "path", |  | ||||||
|                         "name": "id", |  | ||||||
|                         "description": "The key for staticblock", |  | ||||||
|                         "required": true, |  | ||||||
|                         "type": "string" |  | ||||||
|                     } |  | ||||||
|                 ], |  | ||||||
|                 "responses": { |  | ||||||
|                     "200": { |  | ||||||
|                         "description": "", |  | ||||||
|                         "schema": { |  | ||||||
|                             "$ref": "#/definitions/models.CompanyUser" |  | ||||||
|                         } |  | ||||||
|                     }, |  | ||||||
|                     "403": { |  | ||||||
|                         "description": ":id is empty" |  | ||||||
|                     } |  | ||||||
|                 } |  | ||||||
|             }, |  | ||||||
|             "put": { |  | ||||||
|                 "tags": [ |  | ||||||
|                     "company_user" |  | ||||||
|                 ], |  | ||||||
|                 "description": "update the CompanyUser", |  | ||||||
|                 "operationId": "CompanyUserController.Put", |  | ||||||
|                 "parameters": [ |  | ||||||
|                     { |  | ||||||
|                         "in": "path", |  | ||||||
|                         "name": "id", |  | ||||||
|                         "description": "The id you want to update", |  | ||||||
|                         "required": true, |  | ||||||
|                         "type": "string" |  | ||||||
|                     }, |  | ||||||
|                     { |  | ||||||
|                         "in": "body", |  | ||||||
|                         "name": "body", |  | ||||||
|                         "description": "body for CompanyUser content", |  | ||||||
|                         "required": true, |  | ||||||
|                         "schema": { |  | ||||||
|                             "$ref": "#/definitions/models.CompanyUser" |  | ||||||
|                         } |  | ||||||
|                     } |  | ||||||
|                 ], |  | ||||||
|                 "responses": { |  | ||||||
|                     "200": { |  | ||||||
|                         "description": "", |  | ||||||
|                         "schema": { |  | ||||||
|                             "$ref": "#/definitions/models.CompanyUser" |  | ||||||
|                         } |  | ||||||
|                     }, |  | ||||||
|                     "403": { |  | ||||||
|                         "description": ":id is not int" |  | ||||||
|                     } |  | ||||||
|                 } |  | ||||||
|             }, |  | ||||||
|             "delete": { |  | ||||||
|                 "tags": [ |  | ||||||
|                     "company_user" |  | ||||||
|                 ], |  | ||||||
|                 "description": "delete the CompanyUser", |  | ||||||
|                 "operationId": "CompanyUserController.Delete", |  | ||||||
|                 "parameters": [ |  | ||||||
|                     { |  | ||||||
|                         "in": "path", |  | ||||||
|                         "name": "id", |  | ||||||
|                         "description": "The id you want to delete", |  | ||||||
|                         "required": true, |  | ||||||
|                         "type": "string" |  | ||||||
|                     } |  | ||||||
|                 ], |  | ||||||
|                 "responses": { |  | ||||||
|                     "200": { |  | ||||||
|                         "description": "{string} delete success!" |  | ||||||
|                     }, |  | ||||||
|                     "403": { |  | ||||||
|                         "description": "id is empty" |  | ||||||
|                     } |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         }, |  | ||||||
|         "/contact/": { |         "/contact/": { | ||||||
|             "get": { |             "get": { | ||||||
|                 "tags": [ |                 "tags": [ | ||||||
| @@ -706,9 +711,185 @@ | |||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|  |         }, | ||||||
|  |         "/user/": { | ||||||
|  |             "get": { | ||||||
|  |                 "tags": [ | ||||||
|  |                     "user" | ||||||
|  |                 ], | ||||||
|  |                 "description": "get CompanyUser", | ||||||
|  |                 "operationId": "CompanyUserController.Get All", | ||||||
|  |                 "parameters": [ | ||||||
|  |                     { | ||||||
|  |                         "in": "query", | ||||||
|  |                         "name": "query", | ||||||
|  |                         "description": "Filter. e.g. col1:v1,col2:v2 ...", | ||||||
|  |                         "type": "string" | ||||||
|  |                     }, | ||||||
|  |                     { | ||||||
|  |                         "in": "query", | ||||||
|  |                         "name": "fields", | ||||||
|  |                         "description": "Fields returned. e.g. col1,col2 ...", | ||||||
|  |                         "type": "string" | ||||||
|  |                     }, | ||||||
|  |                     { | ||||||
|  |                         "in": "query", | ||||||
|  |                         "name": "sortby", | ||||||
|  |                         "description": "Sorted-by fields. e.g. col1,col2 ...", | ||||||
|  |                         "type": "string" | ||||||
|  |                     }, | ||||||
|  |                     { | ||||||
|  |                         "in": "query", | ||||||
|  |                         "name": "order", | ||||||
|  |                         "description": "Order corresponding to each sortby field, if single value, apply to all sortby fields. e.g. desc,asc ...", | ||||||
|  |                         "type": "string" | ||||||
|  |                     }, | ||||||
|  |                     { | ||||||
|  |                         "in": "query", | ||||||
|  |                         "name": "limit", | ||||||
|  |                         "description": "Limit the size of result set. Must be an integer", | ||||||
|  |                         "type": "string" | ||||||
|  |                     }, | ||||||
|  |                     { | ||||||
|  |                         "in": "query", | ||||||
|  |                         "name": "offset", | ||||||
|  |                         "description": "Start position of result set. Must be an integer", | ||||||
|  |                         "type": "string" | ||||||
|  |                     } | ||||||
|  |                 ], | ||||||
|  |                 "responses": { | ||||||
|  |                     "200": { | ||||||
|  |                         "description": "", | ||||||
|  |                         "schema": { | ||||||
|  |                             "$ref": "#/definitions/models.CompanyUser" | ||||||
|  |                         } | ||||||
|  |                     }, | ||||||
|  |                     "403": { | ||||||
|  |                         "description": "" | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "post": { | ||||||
|  |                 "tags": [ | ||||||
|  |                     "user" | ||||||
|  |                 ], | ||||||
|  |                 "description": "create CompanyUser", | ||||||
|  |                 "operationId": "CompanyUserController.Post", | ||||||
|  |                 "parameters": [ | ||||||
|  |                     { | ||||||
|  |                         "in": "body", | ||||||
|  |                         "name": "body", | ||||||
|  |                         "description": "body for CompanyUser content", | ||||||
|  |                         "required": true, | ||||||
|  |                         "schema": { | ||||||
|  |                             "$ref": "#/definitions/models.CompanyUser" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 ], | ||||||
|  |                 "responses": { | ||||||
|  |                     "201": { | ||||||
|  |                         "description": "{int} models.CompanyUser" | ||||||
|  |                     }, | ||||||
|  |                     "403": { | ||||||
|  |                         "description": "body is empty" | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "/user/{id}": { | ||||||
|  |             "get": { | ||||||
|  |                 "tags": [ | ||||||
|  |                     "user" | ||||||
|  |                 ], | ||||||
|  |                 "description": "get CompanyUser by id", | ||||||
|  |                 "operationId": "CompanyUserController.Get One", | ||||||
|  |                 "parameters": [ | ||||||
|  |                     { | ||||||
|  |                         "in": "path", | ||||||
|  |                         "name": "id", | ||||||
|  |                         "description": "The key for staticblock", | ||||||
|  |                         "required": true, | ||||||
|  |                         "type": "string" | ||||||
|  |                     } | ||||||
|  |                 ], | ||||||
|  |                 "responses": { | ||||||
|  |                     "200": { | ||||||
|  |                         "description": "", | ||||||
|  |                         "schema": { | ||||||
|  |                             "$ref": "#/definitions/models.CompanyUser" | ||||||
|  |                         } | ||||||
|  |                     }, | ||||||
|  |                     "403": { | ||||||
|  |                         "description": ":id is empty" | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "put": { | ||||||
|  |                 "tags": [ | ||||||
|  |                     "user" | ||||||
|  |                 ], | ||||||
|  |                 "description": "update the CompanyUser", | ||||||
|  |                 "operationId": "CompanyUserController.Put", | ||||||
|  |                 "parameters": [ | ||||||
|  |                     { | ||||||
|  |                         "in": "path", | ||||||
|  |                         "name": "id", | ||||||
|  |                         "description": "The id you want to update", | ||||||
|  |                         "required": true, | ||||||
|  |                         "type": "string" | ||||||
|  |                     }, | ||||||
|  |                     { | ||||||
|  |                         "in": "body", | ||||||
|  |                         "name": "body", | ||||||
|  |                         "description": "body for CompanyUser content", | ||||||
|  |                         "required": true, | ||||||
|  |                         "schema": { | ||||||
|  |                             "$ref": "#/definitions/models.CompanyUser" | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 ], | ||||||
|  |                 "responses": { | ||||||
|  |                     "200": { | ||||||
|  |                         "description": "", | ||||||
|  |                         "schema": { | ||||||
|  |                             "$ref": "#/definitions/models.CompanyUser" | ||||||
|  |                         } | ||||||
|  |                     }, | ||||||
|  |                     "403": { | ||||||
|  |                         "description": ":id is not int" | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             }, | ||||||
|  |             "delete": { | ||||||
|  |                 "tags": [ | ||||||
|  |                     "user" | ||||||
|  |                 ], | ||||||
|  |                 "description": "delete the CompanyUser", | ||||||
|  |                 "operationId": "CompanyUserController.Delete", | ||||||
|  |                 "parameters": [ | ||||||
|  |                     { | ||||||
|  |                         "in": "path", | ||||||
|  |                         "name": "id", | ||||||
|  |                         "description": "The id you want to delete", | ||||||
|  |                         "required": true, | ||||||
|  |                         "type": "string" | ||||||
|  |                     } | ||||||
|  |                 ], | ||||||
|  |                 "responses": { | ||||||
|  |                     "200": { | ||||||
|  |                         "description": "{string} delete success!" | ||||||
|  |                     }, | ||||||
|  |                     "403": { | ||||||
|  |                         "description": "id is empty" | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|         } |         } | ||||||
|     }, |     }, | ||||||
|     "definitions": { |     "definitions": { | ||||||
|  |         ".Auth": { | ||||||
|  |             "type": "object" | ||||||
|  |         }, | ||||||
|         "models.CompanyData": { |         "models.CompanyData": { | ||||||
|             "title": "CompanyData", |             "title": "CompanyData", | ||||||
|             "type": "object", |             "type": "object", | ||||||
| @@ -835,7 +1016,7 @@ | |||||||
|             "description": "ContactController operations for Contact\n" |             "description": "ContactController operations for Contact\n" | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "company_data", |             "name": "companydata", | ||||||
|             "description": "CompanyDataController operations for CompanyData\n" |             "description": "CompanyDataController operations for CompanyData\n" | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
| @@ -843,8 +1024,12 @@ | |||||||
|             "description": "PostController operations for Post\n" |             "description": "PostController operations for Post\n" | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "name": "company_user", |             "name": "user", | ||||||
|             "description": "CompanyUserController operations for CompanyUser\n" |             "description": "CompanyUserController operations for CompanyUser\n" | ||||||
|  |         }, | ||||||
|  |         { | ||||||
|  |             "name": "auth", | ||||||
|  |             "description": "AuthController operations for Auth\n" | ||||||
|         } |         } | ||||||
|     ] |     ] | ||||||
| } | } | ||||||
| @@ -11,10 +11,128 @@ info: | |||||||
|     url: http://www.apache.org/licenses/LICENSE-2.0.html |     url: http://www.apache.org/licenses/LICENSE-2.0.html | ||||||
| basePath: /v1 | basePath: /v1 | ||||||
| paths: | paths: | ||||||
|   /company_data/: |   /auth/: | ||||||
|     get: |     get: | ||||||
|       tags: |       tags: | ||||||
|       - company_data |       - auth | ||||||
|  |       description: get Auth | ||||||
|  |       operationId: AuthController.GetAll | ||||||
|  |       parameters: | ||||||
|  |       - in: query | ||||||
|  |         name: query | ||||||
|  |         description: Filter. e.g. col1:v1,col2:v2 ... | ||||||
|  |         type: string | ||||||
|  |       - in: query | ||||||
|  |         name: fields | ||||||
|  |         description: Fields returned. e.g. col1,col2 ... | ||||||
|  |         type: string | ||||||
|  |       - in: query | ||||||
|  |         name: sortby | ||||||
|  |         description: Sorted-by fields. e.g. col1,col2 ... | ||||||
|  |         type: string | ||||||
|  |       - in: query | ||||||
|  |         name: order | ||||||
|  |         description: Order corresponding to each sortby field, if single value, apply | ||||||
|  |           to all sortby fields. e.g. desc,asc ... | ||||||
|  |         type: string | ||||||
|  |       - in: query | ||||||
|  |         name: limit | ||||||
|  |         description: Limit the size of result set. Must be an integer | ||||||
|  |         type: string | ||||||
|  |       - in: query | ||||||
|  |         name: offset | ||||||
|  |         description: Start position of result set. Must be an integer | ||||||
|  |         type: string | ||||||
|  |       responses: | ||||||
|  |         "200": | ||||||
|  |           description: "" | ||||||
|  |           schema: | ||||||
|  |             $ref: '#/definitions/.Auth' | ||||||
|  |         "403": | ||||||
|  |           description: "" | ||||||
|  |   /auth/{id}: | ||||||
|  |     get: | ||||||
|  |       tags: | ||||||
|  |       - auth | ||||||
|  |       description: get Auth by id | ||||||
|  |       operationId: AuthController.GetOne | ||||||
|  |       parameters: | ||||||
|  |       - in: path | ||||||
|  |         name: id | ||||||
|  |         description: The key for staticblock | ||||||
|  |         required: true | ||||||
|  |         type: string | ||||||
|  |       responses: | ||||||
|  |         "200": | ||||||
|  |           description: "" | ||||||
|  |           schema: | ||||||
|  |             $ref: '#/definitions/.Auth' | ||||||
|  |         "403": | ||||||
|  |           description: :id is empty | ||||||
|  |     put: | ||||||
|  |       tags: | ||||||
|  |       - auth | ||||||
|  |       description: update the Auth | ||||||
|  |       operationId: AuthController.Put | ||||||
|  |       parameters: | ||||||
|  |       - in: path | ||||||
|  |         name: id | ||||||
|  |         description: The id you want to update | ||||||
|  |         required: true | ||||||
|  |         type: string | ||||||
|  |       - in: body | ||||||
|  |         name: body | ||||||
|  |         description: body for Auth content | ||||||
|  |         required: true | ||||||
|  |         schema: | ||||||
|  |           $ref: '#/definitions/.Auth' | ||||||
|  |       responses: | ||||||
|  |         "200": | ||||||
|  |           description: "" | ||||||
|  |           schema: | ||||||
|  |             $ref: '#/definitions/.Auth' | ||||||
|  |         "403": | ||||||
|  |           description: :id is not int | ||||||
|  |     delete: | ||||||
|  |       tags: | ||||||
|  |       - auth | ||||||
|  |       description: delete the Auth | ||||||
|  |       operationId: AuthController.Delete | ||||||
|  |       parameters: | ||||||
|  |       - in: path | ||||||
|  |         name: id | ||||||
|  |         description: The id you want to delete | ||||||
|  |         required: true | ||||||
|  |         type: string | ||||||
|  |       responses: | ||||||
|  |         "200": | ||||||
|  |           description: '{string} delete success!' | ||||||
|  |         "403": | ||||||
|  |           description: id is empty | ||||||
|  |   /auth/login: | ||||||
|  |     post: | ||||||
|  |       tags: | ||||||
|  |       - auth | ||||||
|  |       description: create Auth | ||||||
|  |       operationId: AuthController.Create | ||||||
|  |       parameters: | ||||||
|  |       - in: body | ||||||
|  |         name: body | ||||||
|  |         description: body for Auth content | ||||||
|  |         required: true | ||||||
|  |         schema: | ||||||
|  |           $ref: '#/definitions/.Auth' | ||||||
|  |       responses: | ||||||
|  |         "201": | ||||||
|  |           description: "" | ||||||
|  |           schema: | ||||||
|  |             $ref: '#/definitions/.Auth' | ||||||
|  |         "403": | ||||||
|  |           description: body is empty | ||||||
|  |   /companydata/: | ||||||
|  |     get: | ||||||
|  |       tags: | ||||||
|  |       - companydata | ||||||
|       description: get CompanyData |       description: get CompanyData | ||||||
|       operationId: CompanyDataController.Get All |       operationId: CompanyDataController.Get All | ||||||
|       parameters: |       parameters: | ||||||
| @@ -52,7 +170,7 @@ paths: | |||||||
|           description: "" |           description: "" | ||||||
|     post: |     post: | ||||||
|       tags: |       tags: | ||||||
|       - company_data |       - companydata | ||||||
|       description: create CompanyData |       description: create CompanyData | ||||||
|       operationId: CompanyDataController.Post |       operationId: CompanyDataController.Post | ||||||
|       parameters: |       parameters: | ||||||
| @@ -67,10 +185,10 @@ paths: | |||||||
|           description: '{int} models.CompanyData' |           description: '{int} models.CompanyData' | ||||||
|         "403": |         "403": | ||||||
|           description: body is empty |           description: body is empty | ||||||
|   /company_data/{id}: |   /companydata/{id}: | ||||||
|     get: |     get: | ||||||
|       tags: |       tags: | ||||||
|       - company_data |       - companydata | ||||||
|       description: get CompanyData by id |       description: get CompanyData by id | ||||||
|       operationId: CompanyDataController.Get One |       operationId: CompanyDataController.Get One | ||||||
|       parameters: |       parameters: | ||||||
| @@ -88,7 +206,7 @@ paths: | |||||||
|           description: :id is empty |           description: :id is empty | ||||||
|     put: |     put: | ||||||
|       tags: |       tags: | ||||||
|       - company_data |       - companydata | ||||||
|       description: update the CompanyData |       description: update the CompanyData | ||||||
|       operationId: CompanyDataController.Put |       operationId: CompanyDataController.Put | ||||||
|       parameters: |       parameters: | ||||||
| @@ -112,7 +230,7 @@ paths: | |||||||
|           description: :id is not int |           description: :id is not int | ||||||
|     delete: |     delete: | ||||||
|       tags: |       tags: | ||||||
|       - company_data |       - companydata | ||||||
|       description: delete the CompanyData |       description: delete the CompanyData | ||||||
|       operationId: CompanyDataController.Delete |       operationId: CompanyDataController.Delete | ||||||
|       parameters: |       parameters: | ||||||
| @@ -126,121 +244,6 @@ paths: | |||||||
|           description: '{string} delete success!' |           description: '{string} delete success!' | ||||||
|         "403": |         "403": | ||||||
|           description: id is empty |           description: id is empty | ||||||
|   /company_user/: |  | ||||||
|     get: |  | ||||||
|       tags: |  | ||||||
|       - company_user |  | ||||||
|       description: get CompanyUser |  | ||||||
|       operationId: CompanyUserController.Get All |  | ||||||
|       parameters: |  | ||||||
|       - in: query |  | ||||||
|         name: query |  | ||||||
|         description: Filter. e.g. col1:v1,col2:v2 ... |  | ||||||
|         type: string |  | ||||||
|       - in: query |  | ||||||
|         name: fields |  | ||||||
|         description: Fields returned. e.g. col1,col2 ... |  | ||||||
|         type: string |  | ||||||
|       - in: query |  | ||||||
|         name: sortby |  | ||||||
|         description: Sorted-by fields. e.g. col1,col2 ... |  | ||||||
|         type: string |  | ||||||
|       - in: query |  | ||||||
|         name: order |  | ||||||
|         description: Order corresponding to each sortby field, if single value, apply |  | ||||||
|           to all sortby fields. e.g. desc,asc ... |  | ||||||
|         type: string |  | ||||||
|       - in: query |  | ||||||
|         name: limit |  | ||||||
|         description: Limit the size of result set. Must be an integer |  | ||||||
|         type: string |  | ||||||
|       - in: query |  | ||||||
|         name: offset |  | ||||||
|         description: Start position of result set. Must be an integer |  | ||||||
|         type: string |  | ||||||
|       responses: |  | ||||||
|         "200": |  | ||||||
|           description: "" |  | ||||||
|           schema: |  | ||||||
|             $ref: '#/definitions/models.CompanyUser' |  | ||||||
|         "403": |  | ||||||
|           description: "" |  | ||||||
|     post: |  | ||||||
|       tags: |  | ||||||
|       - company_user |  | ||||||
|       description: create CompanyUser |  | ||||||
|       operationId: CompanyUserController.Post |  | ||||||
|       parameters: |  | ||||||
|       - in: body |  | ||||||
|         name: body |  | ||||||
|         description: body for CompanyUser content |  | ||||||
|         required: true |  | ||||||
|         schema: |  | ||||||
|           $ref: '#/definitions/models.CompanyUser' |  | ||||||
|       responses: |  | ||||||
|         "201": |  | ||||||
|           description: '{int} models.CompanyUser' |  | ||||||
|         "403": |  | ||||||
|           description: body is empty |  | ||||||
|   /company_user/{id}: |  | ||||||
|     get: |  | ||||||
|       tags: |  | ||||||
|       - company_user |  | ||||||
|       description: get CompanyUser by id |  | ||||||
|       operationId: CompanyUserController.Get One |  | ||||||
|       parameters: |  | ||||||
|       - in: path |  | ||||||
|         name: id |  | ||||||
|         description: The key for staticblock |  | ||||||
|         required: true |  | ||||||
|         type: string |  | ||||||
|       responses: |  | ||||||
|         "200": |  | ||||||
|           description: "" |  | ||||||
|           schema: |  | ||||||
|             $ref: '#/definitions/models.CompanyUser' |  | ||||||
|         "403": |  | ||||||
|           description: :id is empty |  | ||||||
|     put: |  | ||||||
|       tags: |  | ||||||
|       - company_user |  | ||||||
|       description: update the CompanyUser |  | ||||||
|       operationId: CompanyUserController.Put |  | ||||||
|       parameters: |  | ||||||
|       - in: path |  | ||||||
|         name: id |  | ||||||
|         description: The id you want to update |  | ||||||
|         required: true |  | ||||||
|         type: string |  | ||||||
|       - in: body |  | ||||||
|         name: body |  | ||||||
|         description: body for CompanyUser content |  | ||||||
|         required: true |  | ||||||
|         schema: |  | ||||||
|           $ref: '#/definitions/models.CompanyUser' |  | ||||||
|       responses: |  | ||||||
|         "200": |  | ||||||
|           description: "" |  | ||||||
|           schema: |  | ||||||
|             $ref: '#/definitions/models.CompanyUser' |  | ||||||
|         "403": |  | ||||||
|           description: :id is not int |  | ||||||
|     delete: |  | ||||||
|       tags: |  | ||||||
|       - company_user |  | ||||||
|       description: delete the CompanyUser |  | ||||||
|       operationId: CompanyUserController.Delete |  | ||||||
|       parameters: |  | ||||||
|       - in: path |  | ||||||
|         name: id |  | ||||||
|         description: The id you want to delete |  | ||||||
|         required: true |  | ||||||
|         type: string |  | ||||||
|       responses: |  | ||||||
|         "200": |  | ||||||
|           description: '{string} delete success!' |  | ||||||
|         "403": |  | ||||||
|           description: id is empty |  | ||||||
|   /contact/: |   /contact/: | ||||||
|     get: |     get: | ||||||
|       tags: |       tags: | ||||||
| @@ -471,7 +474,124 @@ paths: | |||||||
|           description: '{string} delete success!' |           description: '{string} delete success!' | ||||||
|         "403": |         "403": | ||||||
|           description: id is empty |           description: id is empty | ||||||
|  |   /user/: | ||||||
|  |     get: | ||||||
|  |       tags: | ||||||
|  |       - user | ||||||
|  |       description: get CompanyUser | ||||||
|  |       operationId: CompanyUserController.Get All | ||||||
|  |       parameters: | ||||||
|  |       - in: query | ||||||
|  |         name: query | ||||||
|  |         description: Filter. e.g. col1:v1,col2:v2 ... | ||||||
|  |         type: string | ||||||
|  |       - in: query | ||||||
|  |         name: fields | ||||||
|  |         description: Fields returned. e.g. col1,col2 ... | ||||||
|  |         type: string | ||||||
|  |       - in: query | ||||||
|  |         name: sortby | ||||||
|  |         description: Sorted-by fields. e.g. col1,col2 ... | ||||||
|  |         type: string | ||||||
|  |       - in: query | ||||||
|  |         name: order | ||||||
|  |         description: Order corresponding to each sortby field, if single value, apply | ||||||
|  |           to all sortby fields. e.g. desc,asc ... | ||||||
|  |         type: string | ||||||
|  |       - in: query | ||||||
|  |         name: limit | ||||||
|  |         description: Limit the size of result set. Must be an integer | ||||||
|  |         type: string | ||||||
|  |       - in: query | ||||||
|  |         name: offset | ||||||
|  |         description: Start position of result set. Must be an integer | ||||||
|  |         type: string | ||||||
|  |       responses: | ||||||
|  |         "200": | ||||||
|  |           description: "" | ||||||
|  |           schema: | ||||||
|  |             $ref: '#/definitions/models.CompanyUser' | ||||||
|  |         "403": | ||||||
|  |           description: "" | ||||||
|  |     post: | ||||||
|  |       tags: | ||||||
|  |       - user | ||||||
|  |       description: create CompanyUser | ||||||
|  |       operationId: CompanyUserController.Post | ||||||
|  |       parameters: | ||||||
|  |       - in: body | ||||||
|  |         name: body | ||||||
|  |         description: body for CompanyUser content | ||||||
|  |         required: true | ||||||
|  |         schema: | ||||||
|  |           $ref: '#/definitions/models.CompanyUser' | ||||||
|  |       responses: | ||||||
|  |         "201": | ||||||
|  |           description: '{int} models.CompanyUser' | ||||||
|  |         "403": | ||||||
|  |           description: body is empty | ||||||
|  |   /user/{id}: | ||||||
|  |     get: | ||||||
|  |       tags: | ||||||
|  |       - user | ||||||
|  |       description: get CompanyUser by id | ||||||
|  |       operationId: CompanyUserController.Get One | ||||||
|  |       parameters: | ||||||
|  |       - in: path | ||||||
|  |         name: id | ||||||
|  |         description: The key for staticblock | ||||||
|  |         required: true | ||||||
|  |         type: string | ||||||
|  |       responses: | ||||||
|  |         "200": | ||||||
|  |           description: "" | ||||||
|  |           schema: | ||||||
|  |             $ref: '#/definitions/models.CompanyUser' | ||||||
|  |         "403": | ||||||
|  |           description: :id is empty | ||||||
|  |     put: | ||||||
|  |       tags: | ||||||
|  |       - user | ||||||
|  |       description: update the CompanyUser | ||||||
|  |       operationId: CompanyUserController.Put | ||||||
|  |       parameters: | ||||||
|  |       - in: path | ||||||
|  |         name: id | ||||||
|  |         description: The id you want to update | ||||||
|  |         required: true | ||||||
|  |         type: string | ||||||
|  |       - in: body | ||||||
|  |         name: body | ||||||
|  |         description: body for CompanyUser content | ||||||
|  |         required: true | ||||||
|  |         schema: | ||||||
|  |           $ref: '#/definitions/models.CompanyUser' | ||||||
|  |       responses: | ||||||
|  |         "200": | ||||||
|  |           description: "" | ||||||
|  |           schema: | ||||||
|  |             $ref: '#/definitions/models.CompanyUser' | ||||||
|  |         "403": | ||||||
|  |           description: :id is not int | ||||||
|  |     delete: | ||||||
|  |       tags: | ||||||
|  |       - user | ||||||
|  |       description: delete the CompanyUser | ||||||
|  |       operationId: CompanyUserController.Delete | ||||||
|  |       parameters: | ||||||
|  |       - in: path | ||||||
|  |         name: id | ||||||
|  |         description: The id you want to delete | ||||||
|  |         required: true | ||||||
|  |         type: string | ||||||
|  |       responses: | ||||||
|  |         "200": | ||||||
|  |           description: '{string} delete success!' | ||||||
|  |         "403": | ||||||
|  |           description: id is empty | ||||||
| definitions: | definitions: | ||||||
|  |   .Auth: | ||||||
|  |     type: object | ||||||
|   models.CompanyData: |   models.CompanyData: | ||||||
|     title: CompanyData |     title: CompanyData | ||||||
|     type: object |     type: object | ||||||
| @@ -560,12 +680,15 @@ tags: | |||||||
| - name: contact | - name: contact | ||||||
|   description: | |   description: | | ||||||
|     ContactController operations for Contact |     ContactController operations for Contact | ||||||
| - name: company_data | - name: companydata | ||||||
|   description: | |   description: | | ||||||
|     CompanyDataController operations for CompanyData |     CompanyDataController operations for CompanyData | ||||||
| - name: post | - name: post | ||||||
|   description: | |   description: | | ||||||
|     PostController operations for Post |     PostController operations for Post | ||||||
| - name: company_user | - name: user | ||||||
|   description: | |   description: | | ||||||
|     CompanyUserController operations for CompanyUser |     CompanyUserController operations for CompanyUser | ||||||
|  | - name: auth | ||||||
|  |   description: | | ||||||
|  |     AuthController operations for Auth | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user