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.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"`
|
Amount model.DonatAmount `json:"amount"`
|
||||||
Text string `json:"text"`
|
Text string `json:"text"`
|
||||||
}
|
}
|
||||||
type Response struct {
|
type CreateTargetResponse struct {
|
||||||
TargetID model.TargetID `json:"targetID"`
|
TargetID model.TargetID `json:"targetID"`
|
||||||
}
|
}
|
||||||
return func(request echo.Context) error {
|
return func(request echo.Context) error {
|
||||||
@ -39,7 +39,7 @@ func CreateTarget(targetService model.TargetService, authClient model.AuthClient
|
|||||||
slog.Error(err.Error())
|
slog.Error(err.Error())
|
||||||
return request.JSON(http.StatusInternalServerError, 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 {
|
func CreateWidget(widgetService model.WidgetService, authClient model.AuthClient) echo.HandlerFunc {
|
||||||
type Body struct {
|
type CreateWidgetBody struct {
|
||||||
TemplateID model.TemplateID `json:"templateID"`
|
TemplateID model.TemplateID `json:"templateID"`
|
||||||
MinAmount model.DonatAmount `json:"minAmount"`
|
MinAmount model.DonatAmount `json:"minAmount"`
|
||||||
Duration model.Duration `json:"duration"`
|
Duration model.Duration `json:"duration"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type Response struct {
|
type CreateWidgetResponse struct {
|
||||||
WidgetID model.WidgetID `json:"widgetID"`
|
WidgetID model.WidgetID `json:"widgetID"`
|
||||||
}
|
}
|
||||||
return func(request echo.Context) error {
|
return func(request echo.Context) error {
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
var body Body
|
var body CreateWidgetBody
|
||||||
if err := request.Bind(&body); err != nil {
|
if err := request.Bind(&body); err != nil {
|
||||||
slog.Error(err.Error())
|
slog.Error(err.Error())
|
||||||
return request.JSON(http.StatusInternalServerError, 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())
|
return request.JSON(http.StatusInternalServerError, err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
response := Response{
|
response := CreateWidgetResponse{
|
||||||
WidgetID: widgetID,
|
WidgetID: widgetID,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ func IncludeDonatHandlers(
|
|||||||
) {
|
) {
|
||||||
server.POST(PREFIX+"/donat/create", CreateDonat(donatService))
|
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/view/:donatID", MarkDonatView(donatService))
|
||||||
server.POST(PREFIX+"/donat/paid", MarkDonatPaid(donatService))
|
server.POST(PREFIX+"/donat/paid", MarkDonatPaid(donatService))
|
||||||
|
@ -13,7 +13,7 @@ storage:
|
|||||||
master: "http://92.63.193.151:9333"
|
master: "http://92.63.193.151:9333"
|
||||||
|
|
||||||
paymentService:
|
paymentService:
|
||||||
host: "92.118.114.148"
|
host: "donat-payment"
|
||||||
port: "8003"
|
port: "8003"
|
||||||
|
|
||||||
authService:
|
authService:
|
||||||
|
@ -42,7 +42,7 @@ type DonatService interface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type DonatRepo 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)
|
GetDonatByStreamerID(ctx context.Context, streamerID StreamerID) ([]*Donat, error)
|
||||||
GetDonatByOrderID(ctx context.Context, orderID OrderID) (*Donat, error)
|
GetDonatByOrderID(ctx context.Context, orderID OrderID) (*Donat, error)
|
||||||
|
@ -23,10 +23,11 @@ type Widget struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type Donat struct {
|
type Donat struct {
|
||||||
ID DonatID `db:"id"`
|
ID DonatID `db:"id"`
|
||||||
WidgetID WidgetID `db:"widget_id"`
|
StreamerID StreamerID `db:"streamer_id"`
|
||||||
OrderID OrderID `db:"order_id"`
|
WidgetID WidgetID `db:"widget_id"`
|
||||||
TargetID TargetID `db:"target_id"`
|
OrderID OrderID `db:"order_id"`
|
||||||
|
TargetID TargetID `db:"target_id"`
|
||||||
|
|
||||||
Text string `db:"text"`
|
Text string `db:"text"`
|
||||||
DonatUser string `db:"donat_user"`
|
DonatUser string `db:"donat_user"`
|
||||||
|
@ -19,6 +19,7 @@ CREATE TABLE IF NOT EXISTS widgets (
|
|||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS donats (
|
CREATE TABLE IF NOT EXISTS donats (
|
||||||
id SERIAL PRIMARY KEY,
|
id SERIAL PRIMARY KEY,
|
||||||
|
streamer_id INTEGER NOT NULL,
|
||||||
widget_id INTEGER NOT NULL,
|
widget_id INTEGER NOT NULL,
|
||||||
order_id TEXT NOT NULL,
|
order_id TEXT NOT NULL,
|
||||||
target_id INTEGER NOT NULL,
|
target_id INTEGER NOT NULL,
|
||||||
|
@ -43,8 +43,8 @@ func GetMediaUrl(mediaType model.MediaType) string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var CreateDonat = `
|
var CreateDonat = `
|
||||||
INSERT INTO donats (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 (@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;
|
RETURNING id;
|
||||||
`
|
`
|
||||||
var MarkDonatView = `
|
var MarkDonatView = `
|
||||||
|
@ -41,12 +41,10 @@ func GetTemplate1(
|
|||||||
`, backgroundUrl)
|
`, backgroundUrl)
|
||||||
|
|
||||||
script := fmt.Sprintf(`
|
script := fmt.Sprintf(`
|
||||||
function delay(ms) {
|
let baseUrl = 'http://localhost:8002/api'
|
||||||
return new Promise(resolve => setTimeout(resolve, ms));
|
|
||||||
}
|
|
||||||
|
|
||||||
async def getDonatInfo(streamerID) {
|
async function getDonatInfo(streamerID) {
|
||||||
let response = await fetch(baseUrl + '/donat/get/' + streamerID);
|
let response = await fetch(baseUrl + '/widget/donat/get/' + streamerID);
|
||||||
let donat = await response.json();
|
let donat = await response.json();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -56,8 +54,6 @@ async function getWidgetInfo(widgetID) {
|
|||||||
return widget
|
return widget
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function addImage(imageUrl) {
|
function addImage(imageUrl) {
|
||||||
img = document.createElement('img');
|
img = document.createElement('img');
|
||||||
img.src = imageUrl + '?t=' + new Date().getTime();
|
img.src = imageUrl + '?t=' + new Date().getTime();
|
||||||
@ -78,6 +74,10 @@ function addAudio(audioUrl) {
|
|||||||
contentDiv.appendChild(audio);
|
contentDiv.appendChild(audio);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function delay(ms) {
|
||||||
|
return new Promise(resolve => setTimeout(resolve, ms));
|
||||||
|
}
|
||||||
|
|
||||||
async function endDonat(donatID) {
|
async function endDonat(donatID) {
|
||||||
if (audio) {
|
if (audio) {
|
||||||
audio.pause();
|
audio.pause();
|
||||||
@ -93,12 +93,10 @@ let audio;
|
|||||||
const contentDiv = document.getElementById('content');
|
const contentDiv = document.getElementById('content');
|
||||||
|
|
||||||
async function widgetView() {
|
async function widgetView() {
|
||||||
let baseUrl = 'http://147.45.237.174:8002/api'
|
|
||||||
let streamerID = '%v'
|
let streamerID = '%v'
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
let donat = await getDonatInfo(streamerID);
|
let donat = await getDonatInfo(streamerID);
|
||||||
|
|
||||||
if (!donat) {
|
if (!donat) {
|
||||||
await delay(5 * 1000);
|
await delay(5 * 1000);
|
||||||
continue
|
continue
|
||||||
@ -108,6 +106,8 @@ async function widgetView() {
|
|||||||
widgetID = donat.widgwtID
|
widgetID = donat.widgwtID
|
||||||
|
|
||||||
let widget = await getWidgetInfo(widgetID)
|
let widget = await getWidgetInfo(widgetID)
|
||||||
|
console.log(donat);
|
||||||
|
console.log(widget);
|
||||||
|
|
||||||
addImage(widget.imageUrl)
|
addImage(widget.imageUrl)
|
||||||
addAudio(widget.audioUrl)
|
addAudio(widget.audioUrl)
|
||||||
|
@ -22,6 +22,7 @@ type RepoDonat struct {
|
|||||||
|
|
||||||
func (repoDonat *RepoDonat) CreateDonat(
|
func (repoDonat *RepoDonat) CreateDonat(
|
||||||
ctx context.Context,
|
ctx context.Context,
|
||||||
|
streamerID model.StreamerID,
|
||||||
widgetID model.WidgetID,
|
widgetID model.WidgetID,
|
||||||
orderID model.OrderID,
|
orderID model.OrderID,
|
||||||
targetID model.TargetID,
|
targetID model.TargetID,
|
||||||
@ -30,12 +31,13 @@ func (repoDonat *RepoDonat) CreateDonat(
|
|||||||
donatUser string,
|
donatUser string,
|
||||||
) error {
|
) error {
|
||||||
args := pgx.NamedArgs{
|
args := pgx.NamedArgs{
|
||||||
"widget_id": widgetID,
|
"streamer_id": streamerID,
|
||||||
"order_id": orderID,
|
"widget_id": widgetID,
|
||||||
"target_id": targetID,
|
"order_id": orderID,
|
||||||
"text": text,
|
"target_id": targetID,
|
||||||
"amount": amount,
|
"text": text,
|
||||||
"donat_user": donatUser,
|
"amount": amount,
|
||||||
|
"donat_user": donatUser,
|
||||||
}
|
}
|
||||||
_, err := repoDonat.db.Insert(ctx, sql.CreateDonat, args)
|
_, err := repoDonat.db.Insert(ctx, sql.CreateDonat, args)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -48,7 +48,7 @@ func (donatService *ServiceDonat) CreateDonat(
|
|||||||
}
|
}
|
||||||
|
|
||||||
err = donatService.donatRepo.CreateDonat(
|
err = donatService.donatRepo.CreateDonat(
|
||||||
ctx, widgetID, orderID, targetID, amount, text, donatUser,
|
ctx, streamerID, widgetID, orderID, targetID, amount, text, donatUser,
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
slog.Error(err.Error())
|
slog.Error(err.Error())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user