mirror of
https://github.com/getAlby/lndhub.go.git
synced 2025-12-20 22:24:52 +01:00
v2 api
This commit is contained in:
59
controllers_v2/create.ctrl.go
Normal file
59
controllers_v2/create.ctrl.go
Normal file
@@ -0,0 +1,59 @@
|
||||
package v2controllers
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"github.com/getAlby/lndhub.go/lib/responses"
|
||||
"github.com/getAlby/lndhub.go/lib/service"
|
||||
"github.com/labstack/echo/v4"
|
||||
)
|
||||
|
||||
// CreateUserController : Create user controller struct
|
||||
type CreateUserController struct {
|
||||
svc *service.LndhubService
|
||||
}
|
||||
|
||||
func NewCreateUserController(svc *service.LndhubService) *CreateUserController {
|
||||
return &CreateUserController{svc: svc}
|
||||
}
|
||||
|
||||
type CreateUserResponseBody struct {
|
||||
Username string `json:"username"`
|
||||
Password string `json:"password"`
|
||||
}
|
||||
type CreateUserRequestBody struct {
|
||||
Username string `json:"username"`
|
||||
Password string `json:"password"`
|
||||
}
|
||||
|
||||
// CreateUser godoc
|
||||
// @Summary Create an account
|
||||
// @Description Create a new account with a username and password
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Tags Account
|
||||
// @Param account body CreateUserRequestBody false "Create User"
|
||||
// @Success 200 {object} CreateUserResponseBody
|
||||
// @Failure 400 {object} responses.ErrorResponse
|
||||
// @Failure 500 {object} responses.ErrorResponse
|
||||
// @Router /v2/users [post]
|
||||
func (controller *CreateUserController) CreateUser(c echo.Context) error {
|
||||
|
||||
var body CreateUserRequestBody
|
||||
|
||||
if err := c.Bind(&body); err != nil {
|
||||
c.Logger().Errorf("Failed to load create user request body: %v", err)
|
||||
return c.JSON(http.StatusBadRequest, responses.BadArgumentsError)
|
||||
}
|
||||
user, err := controller.svc.CreateUser(c.Request().Context(), body.Username, body.Password)
|
||||
if err != nil {
|
||||
c.Logger().Errorf("Failed to create user: %v", err)
|
||||
return c.JSON(http.StatusBadRequest, responses.BadArgumentsError)
|
||||
}
|
||||
|
||||
var ResponseBody CreateUserResponseBody
|
||||
ResponseBody.Username = user.Login
|
||||
ResponseBody.Password = user.Password
|
||||
|
||||
return c.JSON(http.StatusOK, &ResponseBody)
|
||||
}
|
||||
Reference in New Issue
Block a user