27 lines
514 B
1
package appview
2
3
import (
4
"context"
5
6
"github.com/bluesky-social/indigo/atproto/identity"
7
"github.com/bluesky-social/indigo/atproto/syntax"
8
)
9
10
type Resolver struct {
11
directory identity.Directory
12
}
13
14
func NewResolver() *Resolver {
15
return &Resolver{
16
directory: identity.DefaultDirectory(),
17
}
18
}
19
20
func (r *Resolver) ResolveIdent(ctx context.Context, arg string) (*identity.Identity, error) {
21
id, err := syntax.ParseAtIdentifier(arg)
22
if err != nil {
23
return nil, err
24
}
25
26
return r.directory.Lookup(ctx, *id)
27
}
28