search_sug.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package search
  2. import (
  3. "context"
  4. "fmt"
  5. "net/url"
  6. searchMdl "go-common/app/interface/main/tv/model/search"
  7. "go-common/library/ecode"
  8. "go-common/library/log"
  9. "github.com/pkg/errors"
  10. )
  11. // SearchSug gets the search sug detail data from Search API
  12. func (d *Dao) SearchSug(ctx context.Context, req *searchMdl.ReqSug) (result searchMdl.SugResponse, err error) {
  13. var (
  14. config = d.conf.Search
  15. params = url.Values{}
  16. )
  17. // common params
  18. params.Set("main_ver", config.MainVer)
  19. params.Set("sug_num", fmt.Sprintf("%d", config.SugNum))
  20. params.Set("suggest_type", config.SugType)
  21. params.Set("highlight", config.Highlight)
  22. params.Set("build", req.Build)
  23. params.Set("mobi_app", req.MobiApp)
  24. params.Set("platform", req.Platform)
  25. params.Set("term", req.Term) // search term
  26. if err = d.client.Get(ctx, config.URL, "", params, &result); err != nil {
  27. log.Error("ClientGet URL %s error[%v]", config.URL, err)
  28. return
  29. }
  30. if result.Code != ecode.OK.Code() {
  31. log.Error("ClientGet Code Result Not OK [%v]", result)
  32. err = errors.Wrap(ecode.ServerErr, "Search API Error")
  33. return
  34. }
  35. return
  36. }