Files
lndhub.go/controllers_v2/balance.ctrl.go
2022-06-17 15:38:44 +02:00

48 lines
1.2 KiB
Go

package v2controllers
import (
"net/http"
"github.com/getAlby/lndhub.go/lib/service"
"github.com/labstack/echo/v4"
)
// BalanceController : BalanceController struct
type BalanceController struct {
svc *service.LndhubService
}
func NewBalanceController(svc *service.LndhubService) *BalanceController {
return &BalanceController{svc: svc}
}
type BalanceResponse struct {
Balance int64 `json:"balance"`
Currency string `json:"currency"`
Unit string `json:"unit"`
}
// Balance godoc
// @Summary Retrieve balance
// @Description Current user's balance in satoshi
// @Accept json
// @Produce json
// @Tags Account
// @Success 200 {object} BalanceResponse
// @Failure 400 {object} responses.ErrorResponse
// @Failure 500 {object} responses.ErrorResponse
// @Router /v2/balance [get]
// @Security OAuth2Password
func (controller *BalanceController) Balance(c echo.Context) error {
userId := c.Get("UserID").(int64)
balance, err := controller.svc.CurrentUserBalance(c.Request().Context(), userId)
if err != nil {
return err
}
return c.JSON(http.StatusOK, &BalanceResponse{
Balance: balance,
Currency: "BTC",
Unit: "sat",
})
}