Added google androidpublisher/v3 api to verify google purchase tokens
This commit is contained in:
@@ -82,7 +82,7 @@ func (h APIHandler) CreateUser(g *gin.Context) ginresp.HTTPResponse {
|
||||
}
|
||||
|
||||
if b.ProToken != nil {
|
||||
ptok, err := h.app.VerifyProToken(*b.ProToken)
|
||||
ptok, err := h.app.VerifyProToken(ctx, *b.ProToken)
|
||||
if err != nil {
|
||||
return ginresp.APIError(g, 500, apierr.FAILED_VERIFY_PRO_TOKEN, "Failed to query purchase status", err)
|
||||
}
|
||||
@@ -232,7 +232,7 @@ func (h APIHandler) UpdateUser(g *gin.Context) ginresp.HTTPResponse {
|
||||
}
|
||||
|
||||
if b.ProToken != nil {
|
||||
ptok, err := h.app.VerifyProToken(*b.ProToken)
|
||||
ptok, err := h.app.VerifyProToken(ctx, *b.ProToken)
|
||||
if err != nil {
|
||||
return ginresp.APIError(g, 500, apierr.FAILED_VERIFY_PRO_TOKEN, "Failed to query purchase status", err)
|
||||
}
|
||||
@@ -697,8 +697,8 @@ func (h APIHandler) UpdateChannel(g *gin.Context) ginresp.HTTPResponse {
|
||||
// @Tags API-v2
|
||||
//
|
||||
// @Param query_data query handler.ListChannelMessages.query false " "
|
||||
// @Param uid path int true "UserID"
|
||||
// @Param cid path int true "ChannelID"
|
||||
// @Param uid path int true "UserID"
|
||||
// @Param cid path int true "ChannelID"
|
||||
//
|
||||
// @Success 200 {object} handler.ListChannelMessages.response
|
||||
// @Failure 400 {object} ginresp.apiError
|
||||
|
@@ -162,9 +162,9 @@ func (h CommonHandler) Health(g *gin.Context) ginresp.HTTPResponse {
|
||||
//
|
||||
// @Param secs path number true "sleep delay (in seconds)"
|
||||
//
|
||||
// @Success 200 {object} handler.Sleep.response
|
||||
// @Failure 400 {object} ginresp.apiError
|
||||
// @Failure 500 {object} ginresp.apiError
|
||||
// @Success 200 {object} handler.Sleep.response
|
||||
// @Failure 400 {object} ginresp.apiError
|
||||
// @Failure 500 {object} ginresp.apiError
|
||||
//
|
||||
// @Router /api/sleep/{secs} [post]
|
||||
func (h CommonHandler) Sleep(g *gin.Context) ginresp.HTTPResponse {
|
||||
|
@@ -85,7 +85,7 @@ func (h CompatHandler) Register(g *gin.Context) ginresp.HTTPResponse {
|
||||
}
|
||||
|
||||
if data.ProToken != nil {
|
||||
ptok, err := h.app.VerifyProToken(*data.ProToken)
|
||||
ptok, err := h.app.VerifyProToken(ctx, "ANDROID|v2|"+*data.ProToken)
|
||||
if err != nil {
|
||||
return ginresp.CompatAPIError(0, "Failed to query purchase status")
|
||||
}
|
||||
@@ -634,7 +634,7 @@ func (h CompatHandler) Upgrade(g *gin.Context) ginresp.HTTPResponse {
|
||||
}
|
||||
|
||||
if data.ProToken != nil {
|
||||
ptok, err := h.app.VerifyProToken(*data.ProToken)
|
||||
ptok, err := h.app.VerifyProToken(ctx, "ANDROID|v2|"+*data.ProToken)
|
||||
if err != nil {
|
||||
return ginresp.CompatAPIError(0, "Failed to query purchase status")
|
||||
}
|
||||
|
@@ -14,12 +14,14 @@ import (
|
||||
type WebsiteHandler struct {
|
||||
app *logic.Application
|
||||
rexTemplate *regexp.Regexp
|
||||
rexConfig *regexp.Regexp
|
||||
}
|
||||
|
||||
func NewWebsiteHandler(app *logic.Application) WebsiteHandler {
|
||||
return WebsiteHandler{
|
||||
app: app,
|
||||
rexTemplate: regexp.MustCompile("{{template\\|[A-Za-z0-9_\\-.]+}}"),
|
||||
rexConfig: regexp.MustCompile("{{config\\|[A-Za-z0-9_\\-.]+}}"),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -94,6 +96,21 @@ func (h WebsiteHandler) serveAsset(g *gin.Context, fn string, repl bool) ginresp
|
||||
if failed {
|
||||
return ginresp.InternalError(errors.New("template replacement failed"))
|
||||
}
|
||||
|
||||
data = h.rexConfig.ReplaceAllFunc(data, func(match []byte) []byte {
|
||||
prefix := len("{{config|")
|
||||
suffix := len("}}")
|
||||
cfgKey := match[prefix : len(match)-suffix]
|
||||
|
||||
cval, ok := h.getReplConfig(string(cfgKey))
|
||||
if !ok {
|
||||
failed = true
|
||||
}
|
||||
return []byte(cval)
|
||||
})
|
||||
if failed {
|
||||
return ginresp.InternalError(errors.New("config replacement failed"))
|
||||
}
|
||||
}
|
||||
|
||||
mime := "text/plain"
|
||||
@@ -117,3 +134,23 @@ func (h WebsiteHandler) serveAsset(g *gin.Context, fn string, repl bool) ginresp
|
||||
|
||||
return ginresp.Data(http.StatusOK, mime, data)
|
||||
}
|
||||
|
||||
func (h WebsiteHandler) getReplConfig(key string) (string, bool) {
|
||||
key = strings.TrimSpace(strings.ToLower(key))
|
||||
|
||||
if key == "baseurl" {
|
||||
return h.app.Config.BaseURL, true
|
||||
}
|
||||
if key == "ip" {
|
||||
return h.app.Config.ServerIP, true
|
||||
}
|
||||
if key == "port" {
|
||||
return h.app.Config.ServerPort, true
|
||||
}
|
||||
if key == "namespace" {
|
||||
return h.app.Config.Namespace, true
|
||||
}
|
||||
|
||||
return "", false
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user