mirror of
https://github.com/Theodor-Springmann-Stiftung/kgpz_web.git
synced 2025-10-29 09:05:30 +00:00
Added Lookup functions to template to do reverse lookups on works, issues and pieces
This commit is contained in:
@@ -109,7 +109,8 @@ func (p *GNDProvider) WriteCache(folder string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// TODO: Dont write persons already written
|
||||
// INFO: this writes all persons to the cache folder
|
||||
// We do that on every fetch, it's easier that way
|
||||
func (p *GNDProvider) writePersons(folder string) error {
|
||||
info, err := os.Stat(folder)
|
||||
if err == os.ErrNotExist {
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package xmlprovider
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"slices"
|
||||
"sync"
|
||||
"time"
|
||||
@@ -135,24 +134,20 @@ func (p *XMLProvider[T]) Cleanup(latest ParseMeta) {
|
||||
}
|
||||
}
|
||||
|
||||
func (p *XMLProvider[T]) ReverseLookup(item XMLItem) ([]Resolved[T], error) {
|
||||
keys := item.Keys()
|
||||
|
||||
if len(keys) == 0 {
|
||||
return nil, fmt.Errorf("Item has no keys")
|
||||
}
|
||||
|
||||
func (p *XMLProvider[T]) ReverseLookup(item XMLItem) []Resolved[T] {
|
||||
// INFO: this runs just once for the first key
|
||||
ret := make([]Resolved[T], 0)
|
||||
keys := item.Keys()
|
||||
|
||||
for _, key := range keys {
|
||||
r, err := p.Resolver.Get(item.Name(), key)
|
||||
if err != nil {
|
||||
return ret, err
|
||||
if err == nil {
|
||||
ret = append(ret, r...)
|
||||
return ret
|
||||
}
|
||||
ret = append(ret, r...)
|
||||
}
|
||||
|
||||
return ret, nil
|
||||
return ret
|
||||
}
|
||||
|
||||
func (a *XMLProvider[T]) String() string {
|
||||
|
||||
Reference in New Issue
Block a user