I'm new with golang and i try use golang for build rest api with mvc structure, but i get error when the api using parameter if not use parameter the code work like /users url no use http request parameter but for /login url with http request using parameter give me internal server error result.
//this is my main.go
//this route not error
e.GET("/users", users.GetUsers)
//this route error
e.POST("/login", users.AuthUser)
//this is my controller
func GetUsers(c echo.Context) error {
result := users.GetUsers()
return c.JSON(http.StatusOK,result)
}
func AuthUser(c echo.Context) error {
result := users.AuthUser
return c.JSON(http.StatusOK,result)
}
//this is my models for the error code
func AuthUser(r *http.Request) Tokens {
var username, password string
db := dbx.Connect()
defer db.Close()
username = r.FormValue("username")
password = r.FormValue("password")
rowsuser, err := db.Query("Select id,username,password from account where username = ?",username)
if err != nil {
log.Print(err)
}
result := Tokens{}
for rowsuser.Next() {
var Id, Username, Password string
err = rowsuser.Scan(&Id, &Username, &Password)
if err != nil {
result.Tokens = "ERR001"
}
match := CheckPasswordHash(password, Password)
if match != false{
sign := jwt.New(jwt.GetSigningMethod("HS256"))
token, err := sign.SignedString([]byte("secret"))
if err != nil {
result.Tokens = "ERR002"
}
result.Tokens = token
}else{
result.Tokens = "ERR003"
}
}
defer db.Close()
return result;
}
for the route
e.POST("/login", users.AuthUser)
give this error
"error":"json: unsupported type: func(*http.Request) users.Tokens"