forked from loafle/openapi-generator-original
Update the go server api controller template to return the Router interface instead of the api specific router. The Router interface type has the Routes function, which is what the generated `NewRouter` function needs. (not the api specific interface).
204 lines
4.5 KiB
Go
204 lines
4.5 KiB
Go
/*
|
|
* OpenAPI Petstore
|
|
*
|
|
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
|
|
*
|
|
* API version: 1.0.0
|
|
* Generated by: OpenAPI Generator (https://openapi-generator.tech)
|
|
*/
|
|
|
|
package petstoreserver
|
|
|
|
import (
|
|
"encoding/json"
|
|
"net/http"
|
|
"strings"
|
|
|
|
"github.com/gorilla/mux"
|
|
)
|
|
|
|
// A UserApiController binds http requests to an api service and writes the service results to the http response
|
|
type UserApiController struct {
|
|
service UserApiServicer
|
|
}
|
|
|
|
// NewUserApiController creates a default api controller
|
|
func NewUserApiController(s UserApiServicer) Router {
|
|
return &UserApiController{ service: s }
|
|
}
|
|
|
|
// Routes returns all of the api route for the UserApiController
|
|
func (c *UserApiController) Routes() Routes {
|
|
return Routes{
|
|
{
|
|
"CreateUser",
|
|
strings.ToUpper("Post"),
|
|
"/v2/user",
|
|
c.CreateUser,
|
|
},
|
|
{
|
|
"CreateUsersWithArrayInput",
|
|
strings.ToUpper("Post"),
|
|
"/v2/user/createWithArray",
|
|
c.CreateUsersWithArrayInput,
|
|
},
|
|
{
|
|
"CreateUsersWithListInput",
|
|
strings.ToUpper("Post"),
|
|
"/v2/user/createWithList",
|
|
c.CreateUsersWithListInput,
|
|
},
|
|
{
|
|
"DeleteUser",
|
|
strings.ToUpper("Delete"),
|
|
"/v2/user/{username}",
|
|
c.DeleteUser,
|
|
},
|
|
{
|
|
"GetUserByName",
|
|
strings.ToUpper("Get"),
|
|
"/v2/user/{username}",
|
|
c.GetUserByName,
|
|
},
|
|
{
|
|
"LoginUser",
|
|
strings.ToUpper("Get"),
|
|
"/v2/user/login",
|
|
c.LoginUser,
|
|
},
|
|
{
|
|
"LogoutUser",
|
|
strings.ToUpper("Get"),
|
|
"/v2/user/logout",
|
|
c.LogoutUser,
|
|
},
|
|
{
|
|
"UpdateUser",
|
|
strings.ToUpper("Put"),
|
|
"/v2/user/{username}",
|
|
c.UpdateUser,
|
|
},
|
|
}
|
|
}
|
|
|
|
// CreateUser - Create user
|
|
func (c *UserApiController) CreateUser(w http.ResponseWriter, r *http.Request) {
|
|
body := &User{}
|
|
if err := json.NewDecoder(r.Body).Decode(&body); err != nil {
|
|
w.WriteHeader(500)
|
|
return
|
|
}
|
|
|
|
result, err := c.service.CreateUser(*body)
|
|
if err != nil {
|
|
w.WriteHeader(500)
|
|
return
|
|
}
|
|
|
|
EncodeJSONResponse(result, nil, w)
|
|
}
|
|
|
|
// CreateUsersWithArrayInput - Creates list of users with given input array
|
|
func (c *UserApiController) CreateUsersWithArrayInput(w http.ResponseWriter, r *http.Request) {
|
|
body := &[]User{}
|
|
if err := json.NewDecoder(r.Body).Decode(&body); err != nil {
|
|
w.WriteHeader(500)
|
|
return
|
|
}
|
|
|
|
result, err := c.service.CreateUsersWithArrayInput(*body)
|
|
if err != nil {
|
|
w.WriteHeader(500)
|
|
return
|
|
}
|
|
|
|
EncodeJSONResponse(result, nil, w)
|
|
}
|
|
|
|
// CreateUsersWithListInput - Creates list of users with given input array
|
|
func (c *UserApiController) CreateUsersWithListInput(w http.ResponseWriter, r *http.Request) {
|
|
body := &[]User{}
|
|
if err := json.NewDecoder(r.Body).Decode(&body); err != nil {
|
|
w.WriteHeader(500)
|
|
return
|
|
}
|
|
|
|
result, err := c.service.CreateUsersWithListInput(*body)
|
|
if err != nil {
|
|
w.WriteHeader(500)
|
|
return
|
|
}
|
|
|
|
EncodeJSONResponse(result, nil, w)
|
|
}
|
|
|
|
// DeleteUser - Delete user
|
|
func (c *UserApiController) DeleteUser(w http.ResponseWriter, r *http.Request) {
|
|
params := mux.Vars(r)
|
|
username := params["username"]
|
|
result, err := c.service.DeleteUser(username)
|
|
if err != nil {
|
|
w.WriteHeader(500)
|
|
return
|
|
}
|
|
|
|
EncodeJSONResponse(result, nil, w)
|
|
}
|
|
|
|
// GetUserByName - Get user by user name
|
|
func (c *UserApiController) GetUserByName(w http.ResponseWriter, r *http.Request) {
|
|
params := mux.Vars(r)
|
|
username := params["username"]
|
|
result, err := c.service.GetUserByName(username)
|
|
if err != nil {
|
|
w.WriteHeader(500)
|
|
return
|
|
}
|
|
|
|
EncodeJSONResponse(result, nil, w)
|
|
}
|
|
|
|
// LoginUser - Logs user into the system
|
|
func (c *UserApiController) LoginUser(w http.ResponseWriter, r *http.Request) {
|
|
query := r.URL.Query()
|
|
username := query.Get("username")
|
|
password := query.Get("password")
|
|
result, err := c.service.LoginUser(username, password)
|
|
if err != nil {
|
|
w.WriteHeader(500)
|
|
return
|
|
}
|
|
|
|
EncodeJSONResponse(result, nil, w)
|
|
}
|
|
|
|
// LogoutUser - Logs out current logged in user session
|
|
func (c *UserApiController) LogoutUser(w http.ResponseWriter, r *http.Request) {
|
|
result, err := c.service.LogoutUser()
|
|
if err != nil {
|
|
w.WriteHeader(500)
|
|
return
|
|
}
|
|
|
|
EncodeJSONResponse(result, nil, w)
|
|
}
|
|
|
|
// UpdateUser - Updated user
|
|
func (c *UserApiController) UpdateUser(w http.ResponseWriter, r *http.Request) {
|
|
params := mux.Vars(r)
|
|
username := params["username"]
|
|
body := &User{}
|
|
if err := json.NewDecoder(r.Body).Decode(&body); err != nil {
|
|
w.WriteHeader(500)
|
|
return
|
|
}
|
|
|
|
result, err := c.service.UpdateUser(username, *body)
|
|
if err != nil {
|
|
w.WriteHeader(500)
|
|
return
|
|
}
|
|
|
|
EncodeJSONResponse(result, nil, w)
|
|
}
|