init: 1.0.0

This commit is contained in:
Chang lue Tsen
2025-04-25 12:08:29 +09:00
commit 8addcc584b
1031 changed files with 76472 additions and 0 deletions
@@ -0,0 +1,26 @@
package announcement
import (
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/app/announcement"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/internal/types"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// Query announcement
func QueryAnnouncementHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
var req types.QueryAnnouncementRequest
_ = c.ShouldBind(&req)
validateErr := svcCtx.Validate(&req)
if validateErr != nil {
result.ParamErrorResult(c, validateErr)
return
}
l := announcement.NewQueryAnnouncementLogic(c.Request.Context(), svcCtx)
resp, err := l.QueryAnnouncement(&req)
result.HttpResult(c, resp, err)
}
}
+26
View File
@@ -0,0 +1,26 @@
package auth
import (
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/app/auth"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/internal/types"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// Check Account
func CheckHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
var req types.AppAuthCheckRequest
_ = c.ShouldBind(&req)
validateErr := svcCtx.Validate(&req)
if validateErr != nil {
result.ParamErrorResult(c, validateErr)
return
}
l := auth.NewCheckLogic(c, svcCtx)
resp, err := l.Check(&req)
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,26 @@
package auth
import (
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/app/auth"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/internal/types"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// GetAppConfig
func GetAppConfigHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
var req types.AppConfigRequest
_ = c.ShouldBind(&req)
validateErr := svcCtx.Validate(&req)
if validateErr != nil {
result.ParamErrorResult(c, validateErr)
return
}
l := auth.NewGetAppConfigLogic(c, svcCtx)
resp, err := l.GetAppConfig(&req)
result.HttpResult(c, resp, err)
}
}
+42
View File
@@ -0,0 +1,42 @@
package auth
import (
"time"
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/app/auth"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/internal/types"
"github.com/perfect-panel/ppanel-server/pkg/result"
"github.com/perfect-panel/ppanel-server/pkg/turnstile"
"github.com/perfect-panel/ppanel-server/pkg/xerr"
"github.com/pkg/errors"
)
// Login
func LoginHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
var req types.AppAuthRequest
_ = c.ShouldBind(&req)
validateErr := svcCtx.Validate(&req)
if validateErr != nil {
result.ParamErrorResult(c, validateErr)
return
}
if svcCtx.Config.Verify.LoginVerify {
verifyTurns := turnstile.New(turnstile.Config{
Secret: svcCtx.Config.Verify.TurnstileSecret,
Timeout: 3 * time.Second,
})
if verify, err := verifyTurns.Verify(c, req.CfToken, c.ClientIP()); err != nil || !verify {
err = errors.Wrapf(xerr.NewErrCode(xerr.TooManyRequests), "error: %v, verify: %v", err, verify)
result.HttpResult(c, nil, err)
return
}
}
l := auth.NewLoginLogic(c, svcCtx)
resp, err := l.Login(&req)
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,43 @@
package auth
import (
"time"
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/app/auth"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/internal/types"
"github.com/perfect-panel/ppanel-server/pkg/result"
"github.com/perfect-panel/ppanel-server/pkg/turnstile"
"github.com/perfect-panel/ppanel-server/pkg/xerr"
"github.com/pkg/errors"
)
// Register
func RegisterHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
var req types.AppAuthRequest
_ = c.ShouldBind(&req)
validateErr := svcCtx.Validate(&req)
if validateErr != nil {
result.ParamErrorResult(c, validateErr)
return
}
// get client ip
if svcCtx.Config.Verify.RegisterVerify {
verifyTurns := turnstile.New(turnstile.Config{
Secret: svcCtx.Config.Verify.TurnstileSecret,
Timeout: 3 * time.Second,
})
if verify, err := verifyTurns.Verify(c, req.CfToken, c.ClientIP()); err != nil || !verify {
err = errors.Wrapf(xerr.NewErrCode(xerr.TooManyRequests), "error: %v, verify: %v", err, verify)
result.HttpResult(c, nil, err)
return
}
}
l := auth.NewRegisterLogic(c, svcCtx)
resp, err := l.Register(&req)
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,41 @@
package auth
import (
"time"
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/app/auth"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/internal/types"
"github.com/perfect-panel/ppanel-server/pkg/result"
"github.com/perfect-panel/ppanel-server/pkg/turnstile"
"github.com/perfect-panel/ppanel-server/pkg/xerr"
"github.com/pkg/errors"
)
// Reset Password
func ResetPasswordHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
var req types.AppAuthRequest
_ = c.ShouldBind(&req)
validateErr := svcCtx.Validate(&req)
if validateErr != nil {
result.ParamErrorResult(c, validateErr)
return
}
if svcCtx.Config.Verify.ResetPasswordVerify {
verifyTurns := turnstile.New(turnstile.Config{
Secret: svcCtx.Config.Verify.TurnstileSecret,
Timeout: 3 * time.Second,
})
if verify, err := verifyTurns.Verify(c, req.CfToken, c.ClientIP()); err != nil || !verify {
err = errors.Wrapf(xerr.NewErrCode(xerr.TooManyRequests), "error: %v, verify: %v", err, verify)
result.HttpResult(c, nil, err)
return
}
}
l := auth.NewResetPasswordLogic(c, svcCtx)
resp, err := l.ResetPassword(&req)
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,26 @@
package document
import (
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/app/document"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/internal/types"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// Get document detail
func QueryDocumentDetailHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
var req types.QueryDocumentDetailRequest
_ = c.ShouldBind(&req)
validateErr := svcCtx.Validate(&req)
if validateErr != nil {
result.ParamErrorResult(c, validateErr)
return
}
l := document.NewQueryDocumentDetailLogic(c.Request.Context(), svcCtx)
resp, err := l.QueryDocumentDetail(&req)
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,18 @@
package document
import (
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/app/document"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// Get document list
func QueryDocumentListHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
l := document.NewQueryDocumentListLogic(c.Request.Context(), svcCtx)
resp, err := l.QueryDocumentList()
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,26 @@
package node
import (
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/app/node"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/internal/types"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// Get Node list
func GetNodeListHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
var req types.AppUserSubscbribeNodeRequest
_ = c.ShouldBind(&req)
validateErr := svcCtx.Validate(&req)
if validateErr != nil {
result.ParamErrorResult(c, validateErr)
return
}
l := node.NewGetNodeListLogic(c.Request.Context(), svcCtx)
resp, err := l.GetNodeList(&req)
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,18 @@
package node
import (
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/app/node"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// Get rule group list
func GetRuleGroupListHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
l := node.NewGetRuleGroupListLogic(c.Request.Context(), svcCtx)
resp, err := l.GetRuleGroupList()
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,26 @@
package order
import (
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/app/order"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/internal/types"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// Checkout order
func CheckoutOrderHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
var req types.CheckoutOrderRequest
_ = c.ShouldBind(&req)
validateErr := svcCtx.Validate(&req)
if validateErr != nil {
result.ParamErrorResult(c, validateErr)
return
}
l := order.NewCheckoutOrderLogic(c.Request.Context(), svcCtx)
resp, err := l.CheckoutOrder(&req, c.Request.Host)
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,26 @@
package order
import (
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/app/order"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/internal/types"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// Close order
func CloseOrderHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
var req types.CloseOrderRequest
_ = c.ShouldBind(&req)
validateErr := svcCtx.Validate(&req)
if validateErr != nil {
result.ParamErrorResult(c, validateErr)
return
}
l := order.NewCloseOrderLogic(c.Request.Context(), svcCtx)
err := l.CloseOrder(&req)
result.HttpResult(c, nil, err)
}
}
@@ -0,0 +1,26 @@
package order
import (
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/app/order"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/internal/types"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// Pre create order
func PreCreateOrderHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
var req types.PurchaseOrderRequest
_ = c.ShouldBind(&req)
validateErr := svcCtx.Validate(&req)
if validateErr != nil {
result.ParamErrorResult(c, validateErr)
return
}
l := order.NewPreCreateOrderLogic(c.Request.Context(), svcCtx)
resp, err := l.PreCreateOrder(&req)
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,26 @@
package order
import (
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/app/order"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/internal/types"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// purchase Subscription
func PurchaseHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
var req types.PurchaseOrderRequest
_ = c.ShouldBind(&req)
validateErr := svcCtx.Validate(&req)
if validateErr != nil {
result.ParamErrorResult(c, validateErr)
return
}
l := order.NewPurchaseLogic(c.Request.Context(), svcCtx)
resp, err := l.Purchase(&req)
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,26 @@
package order
import (
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/app/order"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/internal/types"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// Get order
func QueryOrderDetailHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
var req types.QueryOrderDetailRequest
_ = c.ShouldBind(&req)
validateErr := svcCtx.Validate(&req)
if validateErr != nil {
result.ParamErrorResult(c, validateErr)
return
}
l := order.NewQueryOrderDetailLogic(c.Request.Context(), svcCtx)
resp, err := l.QueryOrderDetail(&req)
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,26 @@
package order
import (
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/app/order"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/internal/types"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// Get order list
func QueryOrderListHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
var req types.QueryOrderListRequest
_ = c.ShouldBind(&req)
validateErr := svcCtx.Validate(&req)
if validateErr != nil {
result.ParamErrorResult(c, validateErr)
return
}
l := order.NewQueryOrderListLogic(c.Request.Context(), svcCtx)
resp, err := l.QueryOrderList(&req)
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,26 @@
package order
import (
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/app/order"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/internal/types"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// Recharge
func RechargeHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
var req types.RechargeOrderRequest
_ = c.ShouldBind(&req)
validateErr := svcCtx.Validate(&req)
if validateErr != nil {
result.ParamErrorResult(c, validateErr)
return
}
l := order.NewRechargeLogic(c.Request.Context(), svcCtx)
resp, err := l.Recharge(&req)
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,26 @@
package order
import (
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/app/order"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/internal/types"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// Renewal Subscription
func RenewalHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
var req types.RenewalOrderRequest
_ = c.ShouldBind(&req)
validateErr := svcCtx.Validate(&req)
if validateErr != nil {
result.ParamErrorResult(c, validateErr)
return
}
l := order.NewRenewalLogic(c.Request.Context(), svcCtx)
resp, err := l.Renewal(&req)
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,26 @@
package order
import (
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/app/order"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/internal/types"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// Reset traffic
func ResetTrafficHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
var req types.ResetTrafficOrderRequest
_ = c.ShouldBind(&req)
validateErr := svcCtx.Validate(&req)
if validateErr != nil {
result.ParamErrorResult(c, validateErr)
return
}
l := order.NewResetTrafficLogic(c.Request.Context(), svcCtx)
resp, err := l.ResetTraffic(&req)
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,18 @@
package payment
import (
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/app/payment"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// Get available payment methods
func GetAvailablePaymentMethodsHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
l := payment.NewGetAvailablePaymentMethodsLogic(c.Request.Context(), svcCtx)
resp, err := l.GetAvailablePaymentMethods()
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,18 @@
package subscribe
import (
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/app/subscribe"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// Get application config
func QueryApplicationConfigHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
l := subscribe.NewQueryApplicationConfigLogic(c.Request.Context(), svcCtx)
resp, err := l.QueryApplicationConfig()
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,18 @@
package subscribe
import (
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/app/subscribe"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// Get subscribe group list
func QuerySubscribeGroupListHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
l := subscribe.NewQuerySubscribeGroupListLogic(c.Request.Context(), svcCtx)
resp, err := l.QuerySubscribeGroupList()
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,18 @@
package subscribe
import (
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/app/subscribe"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// Get subscribe list
func QuerySubscribeListHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
l := subscribe.NewQuerySubscribeListLogic(c.Request.Context(), svcCtx)
resp, err := l.QuerySubscribeList()
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,18 @@
package subscribe
import (
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/app/subscribe"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// Get Already subscribed to package
func QueryUserAlreadySubscribeHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
l := subscribe.NewQueryUserAlreadySubscribeLogic(c.Request.Context(), svcCtx)
resp, err := l.QueryUserAlreadySubscribe()
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,26 @@
package subscribe
import (
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/app/subscribe"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/internal/types"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// Get Available subscriptions for users
func QueryUserAvailableUserSubscribeHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
var req types.AppUserSubscribeRequest
_ = c.ShouldBind(&req)
validateErr := svcCtx.Validate(&req)
if validateErr != nil {
result.ParamErrorResult(c, validateErr)
return
}
l := subscribe.NewQueryUserAvailableUserSubscribeLogic(c.Request.Context(), svcCtx)
resp, err := l.QueryUserAvailableUserSubscribe(&req)
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,26 @@
package subscribe
import (
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/app/subscribe"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/internal/types"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// Reset user subscription period
func ResetUserSubscribePeriodHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
var req types.UserSubscribeResetPeriodRequest
_ = c.ShouldBind(&req)
validateErr := svcCtx.Validate(&req)
if validateErr != nil {
result.ParamErrorResult(c, validateErr)
return
}
l := subscribe.NewResetUserSubscribePeriodLogic(c.Request.Context(), svcCtx)
resp, err := l.ResetUserSubscribePeriod(&req)
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,26 @@
package user
import (
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/app/user"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/internal/types"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// Delete Account
func DeleteAccountHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
var req types.DeleteAccountRequest
_ = c.ShouldBind(&req)
validateErr := svcCtx.Validate(&req)
if validateErr != nil {
result.ParamErrorResult(c, validateErr)
return
}
l := user.NewDeleteAccountLogic(c.Request.Context(), svcCtx)
err := l.DeleteAccount(&req)
result.HttpResult(c, nil, err)
}
}
@@ -0,0 +1,18 @@
package user
import (
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/app/user"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// Get user online time total
func GetUserOnlineTimeStatisticsHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
l := user.NewGetUserOnlineTimeStatisticsLogic(c.Request.Context(), svcCtx)
resp, err := l.GetUserOnlineTimeStatistics()
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,26 @@
package user
import (
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/app/user"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/internal/types"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// Get user subcribe traffic logs
func GetUserSubscribeTrafficLogsHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
var req types.GetUserSubscribeTrafficLogsRequest
_ = c.BindQuery(&req)
validateErr := svcCtx.Validate(&req)
if validateErr != nil {
result.ParamErrorResult(c, validateErr)
return
}
l := user.NewGetUserSubscribeTrafficLogsLogic(c.Request.Context(), svcCtx)
resp, err := l.GetUserSubscribeTrafficLogs(&req)
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,18 @@
package user
import (
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/app/user"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// query user info
func QueryUserInfoHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
l := user.NewQueryUserInfoLogic(c.Request.Context(), svcCtx)
resp, err := l.QueryUserInfo()
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,18 @@
package user
import (
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/app/user"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// Query User Affiliate Count
func QueryUserAffiliateHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
l := user.NewQueryUserAffiliateLogic(c.Request.Context(), svcCtx)
resp, err := l.QueryUserAffiliate()
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,26 @@
package user
import (
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/app/user"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/internal/types"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// Query User Affiliate List
func QueryUserAffiliateListHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
var req types.QueryUserAffiliateListRequest
_ = c.ShouldBind(&req)
validateErr := svcCtx.Validate(&req)
if validateErr != nil {
result.ParamErrorResult(c, validateErr)
return
}
l := user.NewQueryUserAffiliateListLogic(c.Request.Context(), svcCtx)
resp, err := l.QueryUserAffiliateList(&req)
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,26 @@
package user
import (
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/app/user"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/internal/types"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// Update Password
func UpdatePasswordHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
var req types.UpdatePasswordRequeset
_ = c.ShouldBind(&req)
validateErr := svcCtx.Validate(&req)
if validateErr != nil {
result.ParamErrorResult(c, validateErr)
return
}
l := user.NewUpdatePasswordLogic(c.Request.Context(), svcCtx)
err := l.UpdatePassword(&req)
result.HttpResult(c, nil, err)
}
}
+20
View File
@@ -0,0 +1,20 @@
package ws
import (
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/app/ws"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// App heartbeat
func AppWsHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
ctx := c.Request.Context()
// Logic: App heartbeat
l := ws.NewAppWsLogic(ctx, svcCtx)
err := l.AppWs(c.Writer, c.Request, c.Param("userid"), c.Param("identifier"))
result.HttpResult(c, nil, err)
}
}