ipfs-search/ipfs-search

View on GitHub
components/crawler/existingitem.go

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
package crawler

import (
    "context"

    "github.com/ipfs-search/ipfs-search/components/index"
    index_types "github.com/ipfs-search/ipfs-search/components/index/types"
    t "github.com/ipfs-search/ipfs-search/types"
)

type existingItem struct {
    *t.AnnotatedResource
    index.Index
    *index_types.Update
}

func (c *Crawler) getExistingItem(ctx context.Context, r *t.AnnotatedResource) (*existingItem, error) {
    indexes := []index.Index{c.indexes.Files, c.indexes.Directories, c.indexes.Invalids, c.indexes.Partials}

    update := &index_types.Update{}

    index, err := index.MultiGet(ctx, indexes, r.ID, update, "references", "last-seen")
    if err != nil {
        return nil, err
    }

    if index == nil {
        // Not found
        return nil, nil
    }

    return &existingItem{
        r, index, update,
    }, nil
}