/* * Copyright 2026 Oleg Borodin */ package imageoper import ( "context" "net/http" "slices" ) type ListManifestsParams struct { N int64 } type ListManifestsResult struct { Repositories []string `json:"repositories"` } func (oper *Operator) ListManifests(ctx context.Context, params *ListManifestsParams) (*ListManifestsResult, int, error) { var err error res := &ListManifestsResult{ Repositories: make([]string, 0), } refMap := make(map[string]bool) descrs, err := oper.mdb.ListAllManifests(ctx) if err != nil { return res, http.StatusInternalServerError, err } for _, descr := range descrs { _, already := refMap[descr.Name] if !already { refMap[descr.Name] = true } } for key, _ := range refMap { res.Repositories = append(res.Repositories, key) } slices.Sort(res.Repositories) return res, http.StatusOK, err }