Skip to content

Commit 3b356cd

Browse files
committed
Refactor the peekJob and support pass with the context
1 parent a56053b commit 3b356cd

File tree

2 files changed

+52
-47
lines changed

2 files changed

+52
-47
lines changed

client/client.go

Lines changed: 2 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -174,54 +174,9 @@ func (c *LmstfyClient) PeekQueue(queue string) (job *Job, e *APIError) {
174174
return c.peekQueue(nil, queue)
175175
}
176176

177-
// Peek a specific job data
177+
// PeekJob Peeks a specific job data
178178
func (c *LmstfyClient) PeekJob(queue, jobID string) (job *Job, e *APIError) {
179-
req, err := c.getReq(http.MethodGet, path.Join(queue, "job", jobID), nil, nil)
180-
if err != nil {
181-
return nil, &APIError{
182-
Type: RequestErr,
183-
Reason: err.Error(),
184-
}
185-
}
186-
resp, err := c.httpCli.Do(req)
187-
if err != nil {
188-
return nil, &APIError{
189-
Type: RequestErr,
190-
Reason: err.Error(),
191-
}
192-
}
193-
defer resp.Body.Close()
194-
switch resp.StatusCode {
195-
case http.StatusNotFound:
196-
discardResponseBody(resp.Body)
197-
return nil, nil
198-
case http.StatusOK:
199-
// continue
200-
default:
201-
return nil, &APIError{
202-
Type: ResponseErr,
203-
Reason: parseResponseError(resp),
204-
RequestID: resp.Header.Get("X-Request-ID"),
205-
}
206-
}
207-
respBytes, err := ioutil.ReadAll(resp.Body)
208-
if err != nil {
209-
return nil, &APIError{
210-
Type: ResponseErr,
211-
Reason: err.Error(),
212-
RequestID: resp.Header.Get("X-Request-ID"),
213-
}
214-
}
215-
job = &Job{}
216-
err = json.Unmarshal(respBytes, job)
217-
if err != nil {
218-
return nil, &APIError{
219-
Type: ResponseErr,
220-
Reason: err.Error(),
221-
RequestID: resp.Header.Get("X-Request-ID"),
222-
}
223-
}
224-
return job, nil
179+
return c.peekJob(nil, queue, jobID)
225180
}
226181

227182
// Peek the deadletter of the queue

client/client_impl.go

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -592,6 +592,56 @@ func (c *LmstfyClient) peekQueue(ctx context.Context, queue string) (job *Job, e
592592
return job, nil
593593
}
594594

595+
// peekJob Peek a specific job data
596+
func (c *LmstfyClient) peekJob(ctx context.Context, queue, jobID string) (job *Job, e *APIError) {
597+
req, err := c.getReq(ctx, http.MethodGet, path.Join(queue, "job", jobID), nil, nil)
598+
if err != nil {
599+
return nil, &APIError{
600+
Type: RequestErr,
601+
Reason: err.Error(),
602+
}
603+
}
604+
resp, err := c.httpCli.Do(req)
605+
if err != nil {
606+
return nil, &APIError{
607+
Type: RequestErr,
608+
Reason: err.Error(),
609+
}
610+
}
611+
defer resp.Body.Close()
612+
switch resp.StatusCode {
613+
case http.StatusNotFound:
614+
discardResponseBody(resp.Body)
615+
return nil, nil
616+
case http.StatusOK:
617+
// continue
618+
default:
619+
return nil, &APIError{
620+
Type: ResponseErr,
621+
Reason: parseResponseError(resp),
622+
RequestID: resp.Header.Get("X-Request-ID"),
623+
}
624+
}
625+
respBytes, err := ioutil.ReadAll(resp.Body)
626+
if err != nil {
627+
return nil, &APIError{
628+
Type: ResponseErr,
629+
Reason: err.Error(),
630+
RequestID: resp.Header.Get("X-Request-ID"),
631+
}
632+
}
633+
job = &Job{}
634+
err = json.Unmarshal(respBytes, job)
635+
if err != nil {
636+
return nil, &APIError{
637+
Type: ResponseErr,
638+
Reason: err.Error(),
639+
RequestID: resp.Header.Get("X-Request-ID"),
640+
}
641+
}
642+
return job, nil
643+
}
644+
595645
func discardResponseBody(resp io.ReadCloser) {
596646
// discard response body, to make this connection reusable in the http connection pool
597647
_, _ = ioutil.ReadAll(resp)

0 commit comments

Comments
 (0)