This commit is contained in:
mm 2024-10-30 00:21:57 +05:00
parent dd6f2e2d14
commit 25afdcd2e6
12 changed files with 37 additions and 32 deletions

View File

@ -63,7 +63,8 @@ func GetDonat(donatService model.DonatService) echo.HandlerFunc {
return request.JSON(http.StatusInternalServerError, err.Error())
}
return request.JSON(http.StatusNotFound, donats)
slog.Info("get donat successfully")
return request.JSON(200, donats)
}
}

View File

@ -13,7 +13,7 @@ func CreateTarget(targetService model.TargetService, authClient model.AuthClient
Amount model.DonatAmount `json:"amount"`
Text string `json:"text"`
}
type Response struct {
type CreateTargetResponse struct {
TargetID model.TargetID `json:"targetID"`
}
return func(request echo.Context) error {
@ -39,7 +39,7 @@ func CreateTarget(targetService model.TargetService, authClient model.AuthClient
slog.Error(err.Error())
return request.JSON(http.StatusInternalServerError, err.Error())
}
return request.JSON(http.StatusOK, Response{TargetID: targetID})
return request.JSON(http.StatusOK, CreateTargetResponse{TargetID: targetID})
}
}

View File

@ -10,18 +10,18 @@ import (
)
func CreateWidget(widgetService model.WidgetService, authClient model.AuthClient) echo.HandlerFunc {
type Body struct {
type CreateWidgetBody struct {
TemplateID model.TemplateID `json:"templateID"`
MinAmount model.DonatAmount `json:"minAmount"`
Duration model.Duration `json:"duration"`
}
type Response struct {
type CreateWidgetResponse struct {
WidgetID model.WidgetID `json:"widgetID"`
}
return func(request echo.Context) error {
ctx := context.Background()
var body Body
var body CreateWidgetBody
if err := request.Bind(&body); err != nil {
slog.Error(err.Error())
return request.JSON(http.StatusInternalServerError, err.Error())
@ -49,7 +49,7 @@ func CreateWidget(widgetService model.WidgetService, authClient model.AuthClient
return request.JSON(http.StatusInternalServerError, err.Error())
}
response := Response{
response := CreateWidgetResponse{
WidgetID: widgetID,
}

View File

@ -60,7 +60,7 @@ func IncludeDonatHandlers(
) {
server.POST(PREFIX+"/donat/create", CreateDonat(donatService))
server.GET(PREFIX+"/donat/:streamerID", GetDonat(donatService))
server.GET(PREFIX+"/donat/get/:streamerID", GetDonat(donatService))
server.POST(PREFIX+"/donat/view/:donatID", MarkDonatView(donatService))
server.POST(PREFIX+"/donat/paid", MarkDonatPaid(donatService))

View File

@ -13,7 +13,7 @@ storage:
master: "http://92.63.193.151:9333"
paymentService:
host: "92.118.114.148"
host: "donat-payment"
port: "8003"
authService:

View File

@ -42,7 +42,7 @@ type DonatService interface {
}
type DonatRepo interface {
CreateDonat(ctx context.Context, widgetID WidgetID, orderID OrderID, targetID TargetID, amount DonatAmount, text string, donatUser string) error
CreateDonat(ctx context.Context, streamerID StreamerID, widgetID WidgetID, orderID OrderID, targetID TargetID, amount DonatAmount, text string, donatUser string) error
GetDonatByStreamerID(ctx context.Context, streamerID StreamerID) ([]*Donat, error)
GetDonatByOrderID(ctx context.Context, orderID OrderID) (*Donat, error)

View File

@ -23,10 +23,11 @@ type Widget struct {
}
type Donat struct {
ID DonatID `db:"id"`
WidgetID WidgetID `db:"widget_id"`
OrderID OrderID `db:"order_id"`
TargetID TargetID `db:"target_id"`
ID DonatID `db:"id"`
StreamerID StreamerID `db:"streamer_id"`
WidgetID WidgetID `db:"widget_id"`
OrderID OrderID `db:"order_id"`
TargetID TargetID `db:"target_id"`
Text string `db:"text"`
DonatUser string `db:"donat_user"`

View File

@ -19,6 +19,7 @@ CREATE TABLE IF NOT EXISTS widgets (
CREATE TABLE IF NOT EXISTS donats (
id SERIAL PRIMARY KEY,
streamer_id INTEGER NOT NULL,
widget_id INTEGER NOT NULL,
order_id TEXT NOT NULL,
target_id INTEGER NOT NULL,

View File

@ -43,8 +43,8 @@ func GetMediaUrl(mediaType model.MediaType) string {
}
var CreateDonat = `
INSERT INTO donats (widget_id, text, amount, donat_user, order_id, target_id)
VALUES (@widget_id, @text, @amount, @donat_user, @order_id, @target_id)
INSERT INTO donats (streamer_id, widget_id, text, amount, donat_user, order_id, target_id)
VALUES (@streamer_id, @widget_id, @text, @amount, @donat_user, @order_id, @target_id)
RETURNING id;
`
var MarkDonatView = `

View File

@ -41,12 +41,10 @@ func GetTemplate1(
`, backgroundUrl)
script := fmt.Sprintf(`
function delay(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
let baseUrl = 'http://localhost:8002/api'
async def getDonatInfo(streamerID) {
let response = await fetch(baseUrl + '/donat/get/' + streamerID);
async function getDonatInfo(streamerID) {
let response = await fetch(baseUrl + '/widget/donat/get/' + streamerID);
let donat = await response.json();
}
@ -56,8 +54,6 @@ async function getWidgetInfo(widgetID) {
return widget
}
function addImage(imageUrl) {
img = document.createElement('img');
img.src = imageUrl + '?t=' + new Date().getTime();
@ -78,6 +74,10 @@ function addAudio(audioUrl) {
contentDiv.appendChild(audio);
}
function delay(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function endDonat(donatID) {
if (audio) {
audio.pause();
@ -93,12 +93,10 @@ let audio;
const contentDiv = document.getElementById('content');
async function widgetView() {
let baseUrl = 'http://147.45.237.174:8002/api'
let streamerID = '%v'
while (true) {
let donat = await getDonatInfo(streamerID);
if (!donat) {
await delay(5 * 1000);
continue
@ -108,6 +106,8 @@ async function widgetView() {
widgetID = donat.widgwtID
let widget = await getWidgetInfo(widgetID)
console.log(donat);
console.log(widget);
addImage(widget.imageUrl)
addAudio(widget.audioUrl)

View File

@ -22,6 +22,7 @@ type RepoDonat struct {
func (repoDonat *RepoDonat) CreateDonat(
ctx context.Context,
streamerID model.StreamerID,
widgetID model.WidgetID,
orderID model.OrderID,
targetID model.TargetID,
@ -30,12 +31,13 @@ func (repoDonat *RepoDonat) CreateDonat(
donatUser string,
) error {
args := pgx.NamedArgs{
"widget_id": widgetID,
"order_id": orderID,
"target_id": targetID,
"text": text,
"amount": amount,
"donat_user": donatUser,
"streamer_id": streamerID,
"widget_id": widgetID,
"order_id": orderID,
"target_id": targetID,
"text": text,
"amount": amount,
"donat_user": donatUser,
}
_, err := repoDonat.db.Insert(ctx, sql.CreateDonat, args)
if err != nil {

View File

@ -48,7 +48,7 @@ func (donatService *ServiceDonat) CreateDonat(
}
err = donatService.donatRepo.CreateDonat(
ctx, widgetID, orderID, targetID, amount, text, donatUser,
ctx, streamerID, widgetID, orderID, targetID, amount, text, donatUser,
)
if err != nil {
slog.Error(err.Error())