136 lines
4.5 KiB
Go
136 lines
4.5 KiB
Go
package http
|
|
|
|
import (
|
|
"donat-widget/internal/api/http/handlers/files"
|
|
"donat-widget/internal/api/http/handlers/widget"
|
|
"github.com/labstack/echo/v4/middleware"
|
|
|
|
"github.com/labstack/echo/v4"
|
|
"github.com/swaggo/echo-swagger"
|
|
)
|
|
|
|
import (
|
|
"donat-widget/internal/model"
|
|
"donat-widget/pkg/validator"
|
|
)
|
|
|
|
import (
|
|
. "donat-widget/internal/api/http/handlers/donat"
|
|
. "donat-widget/internal/api/http/handlers/target"
|
|
)
|
|
|
|
var PREFIX = "/api/widget"
|
|
|
|
func NewApp(
|
|
db model.Db,
|
|
widgetService model.WidgetService,
|
|
donatService model.DonatService,
|
|
targetService model.TargetService,
|
|
fileService model.FileService,
|
|
authClient model.AuthClient,
|
|
) {
|
|
server := echo.New()
|
|
|
|
server.Use(
|
|
middleware.CORSWithConfig(
|
|
middleware.CORSConfig{
|
|
AllowOrigins: []string{
|
|
"https://donatehelper.com",
|
|
"https://donatehelper.com",
|
|
"https://widget.donatehelper.com",
|
|
"http://widget.donatehelper.com",
|
|
"http://127.0.0.1:8002",
|
|
},
|
|
AllowHeaders: []string{"Content-Type", "Authorization", "X-Requested-With"},
|
|
AllowCredentials: true,
|
|
ExposeHeaders: []string{"Content-Length"},
|
|
MaxAge: 86400,
|
|
},
|
|
),
|
|
)
|
|
|
|
server.Validator = validator.NewValidator()
|
|
|
|
server.GET(PREFIX+"/docs/*", echoSwagger.WrapHandler)
|
|
|
|
IncludeWidgetHandlers(server, widgetService)
|
|
IncludeDonatHandlers(server, donatService, fileService)
|
|
IncludeTargetHandlers(server, targetService, donatService, authClient)
|
|
IncludeFileHandlers(server, fileService, donatService)
|
|
|
|
server.Logger.Fatal(server.Start(":8002"))
|
|
}
|
|
|
|
func IncludeTargetHandlers(
|
|
server *echo.Echo,
|
|
targetService model.TargetService,
|
|
donatService model.DonatService,
|
|
authClient model.AuthClient,
|
|
) {
|
|
server.POST(PREFIX+"/target/create", CreateTarget(targetService, authClient))
|
|
server.GET(PREFIX+"/target/all", GetAllTarget(targetService))
|
|
server.POST(PREFIX+"/target/addAmount", AddAmountTarget(targetService, donatService))
|
|
}
|
|
|
|
func IncludeDonatHandlers(
|
|
server *echo.Echo,
|
|
donatService model.DonatService,
|
|
fileService model.FileService,
|
|
) {
|
|
server.POST(PREFIX+"/init-streamer", InitNewStreamer(donatService))
|
|
|
|
server.POST(PREFIX+"/donat/:streamer-login", CreateDonat(donatService))
|
|
server.POST(PREFIX+"/test-donat/:streamer-login", CreateTestDonat(donatService))
|
|
|
|
server.GET(PREFIX+"/inner-donate-page", GetInnerDonatePage(donatService))
|
|
server.GET(PREFIX+"/outer-donate-page/:streamer-login", GetOuterDonatePage(donatService))
|
|
server.PATCH(PREFIX+"/donat-page", UpdateDonatePage(donatService, fileService))
|
|
|
|
server.GET(PREFIX+"/voice-settings", GetVoiceSettings(donatService))
|
|
server.PATCH(PREFIX+"/voice-settings", UpdateVoiceSettings(donatService))
|
|
|
|
server.GET(PREFIX+"/filters-settings", GetFiltersSettings(donatService))
|
|
server.PATCH(PREFIX+"/filters-settings", UpdateFiltersSettings(donatService))
|
|
|
|
server.GET(PREFIX+"/moderation-settings", GetModerationSettings(donatService))
|
|
server.PATCH(PREFIX+"/moderation-settings", UpdateModerationSettings(donatService))
|
|
|
|
server.GET(PREFIX+"/donat", GetDonat(donatService))
|
|
|
|
server.POST(PREFIX+"/donat/viewed", MarkDonatView(donatService))
|
|
server.POST(PREFIX+"/donat/paid", MarkDonatPaid(donatService))
|
|
|
|
server.GET(PREFIX+"/donat/period-stat", GetDonationsStats(donatService))
|
|
|
|
server.GET(PREFIX+"/donat-moderate/latest-moderation", GetDonateModeration(donatService))
|
|
server.PATCH(PREFIX+"/donat-moderate/:donat-id", ModerateDonat(donatService))
|
|
|
|
server.GET(PREFIX+"/get-donat-for-playing/:streamer-id", GetDonatForPlaying(donatService))
|
|
server.GET(PREFIX+"/text-after-donat/:order-id", GetMessageAfterDonat(donatService))
|
|
server.POST(PREFIX+"/update-login-donate", UpdateLoginDonatePage(donatService))
|
|
server.PUT(PREFIX+"/update-streamer-online/:streamer-id", UpdateStreamerOnline(donatService))
|
|
}
|
|
|
|
func IncludeWidgetHandlers(
|
|
server *echo.Echo,
|
|
widgetService model.WidgetService,
|
|
) {
|
|
server.POST(PREFIX+"/widgets", widget.CreateWidget(widgetService))
|
|
server.GET(PREFIX+"/widgets", widget.GetStreamersWidgets(widgetService))
|
|
server.PATCH(PREFIX+"/widgets/:widgetID", widget.UpdateWidget(widgetService))
|
|
server.DELETE(PREFIX+"/widgets/:widgetID", widget.DeleteWidget(widgetService))
|
|
|
|
server.GET(PREFIX+"/get-widget-html/:widget-page-id", widget.GetWidgetHTML(widgetService))
|
|
|
|
}
|
|
|
|
func IncludeFileHandlers(
|
|
server *echo.Echo,
|
|
fileService model.FileService,
|
|
donatService model.DonatService,
|
|
) {
|
|
server.POST(PREFIX+"/files", files.AddNewFile(fileService, donatService))
|
|
server.GET(PREFIX+"/files/:file_id", files.GetFile(fileService))
|
|
server.GET(PREFIX+"/files/widgets", files.GetWidgetFiles(fileService))
|
|
}
|