dev
This commit is contained in:
parent
dd6f2e2d14
commit
25afdcd2e6
@ -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)
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -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})
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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,
|
||||
}
|
||||
|
||||
|
@ -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))
|
||||
|
@ -13,7 +13,7 @@ storage:
|
||||
master: "http://92.63.193.151:9333"
|
||||
|
||||
paymentService:
|
||||
host: "92.118.114.148"
|
||||
host: "donat-payment"
|
||||
port: "8003"
|
||||
|
||||
authService:
|
||||
|
@ -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)
|
||||
|
@ -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"`
|
||||
|
@ -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,
|
||||
|
@ -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 = `
|
||||
|
@ -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)
|
||||
|
@ -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 {
|
||||
|
@ -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())
|
||||
|
Loading…
x
Reference in New Issue
Block a user