Mock ntg search job info
This commit is contained in:
@@ -16,6 +16,7 @@ import (
|
||||
type NTGVision struct {
|
||||
searcher interface {
|
||||
search(states []config.State) (io.ReadCloser, error)
|
||||
searchJob(id int64) (io.ReadCloser, error)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,13 +44,14 @@ type ntgVisionJobInfo struct {
|
||||
Instructions string `json:"instructions"`
|
||||
IsDropTrailer bool `json:"isDropTrailer"`
|
||||
} `json:"stopinfos"`
|
||||
PayUpTo float32 `json:"payUpTo"`
|
||||
LoadState string `json:"loadStatus"`
|
||||
PayUpTo float32 `json:"payUpTo"`
|
||||
TotalCarrierRate float32 `json:"totalCarrierRate"`
|
||||
LoadState string `json:"loadStatus"`
|
||||
//CanBidNow bool `json:"canBidNow"`
|
||||
}
|
||||
|
||||
func (ji ntgVisionJobInfo) IsZero() bool {
|
||||
return len(ji.StopsInfo) == 0 && ji.PayUpTo == 0 && ji.LoadState == ""
|
||||
return len(ji.StopsInfo) == 0 && ji.TotalCarrierRate == 0 && ji.PayUpTo == 0 && ji.LoadState == ""
|
||||
}
|
||||
|
||||
func (ji ntgVisionJobInfo) String() string {
|
||||
@@ -60,6 +62,9 @@ func (ji ntgVisionJobInfo) String() string {
|
||||
if ji.PayUpTo != 0 {
|
||||
out = fmt.Sprintf("\nPAYS:%v\n%s", ji.PayUpTo, out)
|
||||
}
|
||||
if ji.TotalCarrierRate != 0 {
|
||||
out = fmt.Sprintf("%s Total_Carrier_Rate:%v", out, ji.TotalCarrierRate)
|
||||
}
|
||||
if ji.LoadState != "" {
|
||||
out = fmt.Sprintf("%s Auction:%s", out, ji.LoadState)
|
||||
}
|
||||
@@ -90,13 +95,8 @@ func (ntgJob *ntgVisionJob) JobInfo() (ntgVisionJobInfo, error) {
|
||||
} else if err := json.Unmarshal(b, &ntgJob.jobinfo); err == nil {
|
||||
return ntgJob.jobinfo, nil
|
||||
}
|
||||
ji, err := ntgJob.jobInfo()
|
||||
if err == ErrNoAuth {
|
||||
if err := NewNTGVision().refreshAuth(); err != nil {
|
||||
return ntgVisionJobInfo{}, err
|
||||
}
|
||||
ji, err = ntgJob.jobInfo()
|
||||
}
|
||||
ntg := NewNTGVision()
|
||||
ji, err := ntg.SearchJob(ntgJob.ID)
|
||||
if err == nil {
|
||||
ntgJob.jobinfo = ji
|
||||
b, err := json.Marshal(ntgJob.jobinfo)
|
||||
@@ -107,26 +107,24 @@ func (ntgJob *ntgVisionJob) JobInfo() (ntgVisionJobInfo, error) {
|
||||
return ji, err
|
||||
}
|
||||
|
||||
func (ntgJob *ntgVisionJob) jobInfo() (ntgVisionJobInfo, error) {
|
||||
func (ntg NTGVision) searchJob(id int64) (io.ReadCloser, error) {
|
||||
time.Sleep(config.Get().Interval.JobInfo.Get())
|
||||
request, err := http.NewRequest(http.MethodGet, fmt.Sprintf(`https://ntgvision.com/api/v1/load/LoadDetails?loadId=%v`, ntgJob.ID), nil)
|
||||
request, err := http.NewRequest(http.MethodGet, fmt.Sprintf(`https://ntgvision.com/api/v1/load/LoadDetails?loadId=%v`, id), nil)
|
||||
if err != nil {
|
||||
return ntgVisionJobInfo{}, err
|
||||
return nil, err
|
||||
}
|
||||
setNTGHeaders(request)
|
||||
resp, err := do(request)
|
||||
if err != nil {
|
||||
return ntgVisionJobInfo{}, err
|
||||
return nil, err
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
b, _ := ioutil.ReadAll(resp.Body)
|
||||
log.Printf("fetch ntg job info %+v: %d: %s", request, resp.StatusCode, b)
|
||||
if resp.StatusCode > 400 && resp.StatusCode < 500 && resp.StatusCode != 404 && resp.StatusCode != 410 {
|
||||
return ntgVisionJobInfo{}, ErrNoAuth
|
||||
return nil, ErrNoAuth
|
||||
}
|
||||
var result ntgVisionJobInfo
|
||||
err = json.Unmarshal(b, &result)
|
||||
return result, err
|
||||
return io.NopCloser(bytes.NewReader(b)), nil
|
||||
}
|
||||
|
||||
func (ntgJob *ntgVisionJob) Job() Job {
|
||||
@@ -162,6 +160,9 @@ func (ntgJob *ntgVisionJob) Job() Job {
|
||||
func NewNTGVision() NTGVision {
|
||||
ntgv := NTGVision{}
|
||||
ntgv.searcher = ntgv
|
||||
if config.Get().Brokers.NTG.Mock {
|
||||
ntgv = ntgv.WithMock()
|
||||
}
|
||||
return ntgv
|
||||
}
|
||||
|
||||
@@ -170,6 +171,22 @@ func (ntg NTGVision) WithMock() NTGVision {
|
||||
return ntg
|
||||
}
|
||||
|
||||
func (ntg NTGVision) SearchJob(id int64) (ntgVisionJobInfo, error) {
|
||||
rc, err := ntg.searcher.searchJob(id)
|
||||
if err == ErrNoAuth {
|
||||
if err := ntg.refreshAuth(); err != nil {
|
||||
return ntgVisionJobInfo{}, err
|
||||
}
|
||||
rc, err = ntg.searcher.searchJob(id)
|
||||
}
|
||||
if err != nil {
|
||||
return ntgVisionJobInfo{}, err
|
||||
}
|
||||
var result ntgVisionJobInfo
|
||||
err = json.NewDecoder(rc).Decode(&result)
|
||||
return result, err
|
||||
}
|
||||
|
||||
func (ntg NTGVision) Search(states []config.State) ([]Job, error) {
|
||||
rc, err := ntg.searcher.search(states)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user