go-common/app/interface/main/tv/dao/search/result.go
2019-04-22 18:49:16 +08:00

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
}