77 lines
2.5 KiB
Go
77 lines
2.5 KiB
Go
package search
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"net/url"
|
|
|
|
searchMdl "go-common/app/interface/main/tv/model/search"
|
|
"go-common/library/ecode"
|
|
"go-common/library/log"
|
|
|
|
"github.com/pkg/errors"
|
|
)
|
|
|
|
// SearchAll gets the search all_tv result
|
|
func (d *Dao) SearchAll(ctx context.Context, req *searchMdl.ReqSearch) (result searchMdl.RespAll, common *searchMdl.ResultResponse, err error) {
|
|
params := commonParam(req)
|
|
if err = d.client.Get(ctx, d.resultURL, "", params, &result); err != nil {
|
|
log.Error("[result] SearchAll URL(%s) error[%v]", d.resultURL, err)
|
|
return
|
|
}
|
|
if result.Code != ecode.OK.Code() {
|
|
err = errors.Wrap(ecode.Int(result.Code), "Search API Error: "+result.Msg)
|
|
log.Error("[result] SearchAll URL(%s) error[%v]", d.resultURL, err)
|
|
}
|
|
common = result.ResultResponse
|
|
return
|
|
}
|
|
|
|
// SearchUgc gets the search tv_ugc result
|
|
func (d *Dao) SearchUgc(ctx context.Context, req *searchMdl.ReqSearch) (result searchMdl.RespUgc, common *searchMdl.ResultResponse, err error) {
|
|
// common params
|
|
params := commonParam(req)
|
|
params.Set("category", fmt.Sprintf("%d", req.Category))
|
|
if err = d.client.Get(ctx, d.resultURL, "", params, &result); err != nil {
|
|
log.Error("[result] SearchUgc URL(%s) error[%v]", d.resultURL, err)
|
|
return
|
|
}
|
|
if result.Code != ecode.OK.Code() {
|
|
err = errors.Wrap(ecode.Int(result.Code), "Search API Error: "+result.Msg)
|
|
log.Error("[result] SearchUgc Code(%d) URL(%s) error[%v]", result.Code, d.resultURL, err)
|
|
}
|
|
common = result.ResultResponse
|
|
return
|
|
}
|
|
|
|
// SearchPgc gets the search tv_pgc result
|
|
func (d *Dao) SearchPgc(ctx context.Context, req *searchMdl.ReqSearch) (result searchMdl.RespPgc, common *searchMdl.ResultResponse, err error) {
|
|
params := commonParam(req)
|
|
if err = d.client.Get(ctx, d.resultURL, "", params, &result); err != nil {
|
|
log.Error("[result] SearchPgc URL(%s) error[%v]", d.resultURL, err)
|
|
return
|
|
}
|
|
if result.Code != ecode.OK.Code() {
|
|
log.Error("ClientGet Code Result Not OK [%v]", result)
|
|
err = errors.Wrap(ecode.Int(result.Code), "Search API Error: "+result.Msg)
|
|
}
|
|
common = result.ResultResponse
|
|
return
|
|
}
|
|
|
|
func commonParam(req *searchMdl.ReqSearch) (params url.Values) {
|
|
params = url.Values{}
|
|
params.Set("search_type", req.SearchType)
|
|
params.Set("order", req.Order)
|
|
params.Set("build", req.Build)
|
|
params.Set("mobi_app", req.MobiAPP)
|
|
params.Set("platform", req.Platform)
|
|
params.Set("device", req.Device)
|
|
params.Set("keyword", req.Keyword)
|
|
params.Set("page", fmt.Sprintf("%d", req.Page))
|
|
if req.Pagesize != 0 {
|
|
params.Set("pagesize", fmt.Sprintf("%d", req.Pagesize))
|
|
}
|
|
return
|
|
}
|