From 25afdcd2e6ec08ff4adb58f7c5927c43a21bd0b3 Mon Sep 17 00:00:00 2001 From: mm Date: Wed, 30 Oct 2024 00:21:57 +0500 Subject: [PATCH] dev --- internal/api/http/handlers/donat/donat.go | 3 ++- internal/api/http/handlers/target/target.go | 4 ++-- internal/api/http/handlers/widget/widget.go | 8 ++++---- internal/app/http/app.go | 2 +- internal/config/config.yaml | 2 +- internal/model/interfaces.go | 2 +- internal/model/models.go | 9 +++++---- internal/model/sql/model.go | 1 + internal/model/sql/query.go | 4 ++-- internal/model/widget-templates.go | 18 +++++++++--------- internal/repository/donat/donat.go | 14 ++++++++------ internal/service/donat/donat.go | 2 +- 12 files changed, 37 insertions(+), 32 deletions(-) diff --git a/internal/api/http/handlers/donat/donat.go b/internal/api/http/handlers/donat/donat.go index 715208c..55cd518 100644 --- a/internal/api/http/handlers/donat/donat.go +++ b/internal/api/http/handlers/donat/donat.go @@ -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) } } diff --git a/internal/api/http/handlers/target/target.go b/internal/api/http/handlers/target/target.go index 5df7d95..523631b 100644 --- a/internal/api/http/handlers/target/target.go +++ b/internal/api/http/handlers/target/target.go @@ -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}) } } diff --git a/internal/api/http/handlers/widget/widget.go b/internal/api/http/handlers/widget/widget.go index e2ca488..317c44d 100644 --- a/internal/api/http/handlers/widget/widget.go +++ b/internal/api/http/handlers/widget/widget.go @@ -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, } diff --git a/internal/app/http/app.go b/internal/app/http/app.go index ed037a7..df40b0c 100644 --- a/internal/app/http/app.go +++ b/internal/app/http/app.go @@ -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)) diff --git a/internal/config/config.yaml b/internal/config/config.yaml index aee4d2c..b55db2c 100644 --- a/internal/config/config.yaml +++ b/internal/config/config.yaml @@ -13,7 +13,7 @@ storage: master: "http://92.63.193.151:9333" paymentService: - host: "92.118.114.148" + host: "donat-payment" port: "8003" authService: diff --git a/internal/model/interfaces.go b/internal/model/interfaces.go index 15ca825..0d10847 100644 --- a/internal/model/interfaces.go +++ b/internal/model/interfaces.go @@ -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) diff --git a/internal/model/models.go b/internal/model/models.go index f29b93a..7182085 100644 --- a/internal/model/models.go +++ b/internal/model/models.go @@ -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"` diff --git a/internal/model/sql/model.go b/internal/model/sql/model.go index 378d86d..8ab8388 100644 --- a/internal/model/sql/model.go +++ b/internal/model/sql/model.go @@ -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, diff --git a/internal/model/sql/query.go b/internal/model/sql/query.go index 5b5c3b5..0ebb0e1 100644 --- a/internal/model/sql/query.go +++ b/internal/model/sql/query.go @@ -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 = ` diff --git a/internal/model/widget-templates.go b/internal/model/widget-templates.go index 96aa0d3..a02df77 100644 --- a/internal/model/widget-templates.go +++ b/internal/model/widget-templates.go @@ -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) diff --git a/internal/repository/donat/donat.go b/internal/repository/donat/donat.go index 6c92f77..f8897d2 100644 --- a/internal/repository/donat/donat.go +++ b/internal/repository/donat/donat.go @@ -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 { diff --git a/internal/service/donat/donat.go b/internal/service/donat/donat.go index 0adc74f..56fea55 100644 --- a/internal/service/donat/donat.go +++ b/internal/service/donat/donat.go @@ -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())