returns os.ErrNotExist when scan was not found
(br blob.Ref, searchFunc func(blob.Ref) (*search.SearchResult, error))
| 208 | |
| 209 | // returns os.ErrNotExist when scan was not found |
| 210 | func (h *handler) fetchScanFunc(br blob.Ref, searchFunc func(blob.Ref) (*search.SearchResult, error)) (mediaObject, error) { |
| 211 | var mo mediaObject |
| 212 | res, err := searchFunc(br) |
| 213 | if err != nil { |
| 214 | return mo, err |
| 215 | } |
| 216 | if len(res.Blobs) != 1 { |
| 217 | return mo, os.ErrNotExist |
| 218 | } |
| 219 | if res.Describe == nil || len(res.Describe.Meta) == 0 { |
| 220 | return mo, errors.New("scan permanode was not described") |
| 221 | } |
| 222 | for _, des := range res.Describe.Meta { |
| 223 | if des.Permanode == nil { |
| 224 | continue |
| 225 | } |
| 226 | scan, err := h.describeScan(des) |
| 227 | if err != nil { |
| 228 | return mo, fmt.Errorf("error describing scan %v: %v", des.BlobRef, err) |
| 229 | } |
| 230 | return scan, nil |
| 231 | } |
| 232 | return mo, os.ErrNotExist |
| 233 | } |
| 234 | |
| 235 | // TODO(mpl): move that to client pkg, with a good API ? |
| 236 |
no test coverage detected