forked from keybase/client
-
Notifications
You must be signed in to change notification settings - Fork 0
/
resolve.go
43 lines (35 loc) · 1.26 KB
/
resolve.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package teams
import (
"context"
"fmt"
"github.com/keybase/client/go/libkb"
keybase1 "github.com/keybase/client/go/protocol/keybase1"
)
// ResolveIDToName takes a team ID and resolve it to a name. It can use server-assist
// but always cryptographically checks the result.
func ResolveIDToName(ctx context.Context, g *libkb.GlobalContext, id keybase1.TeamID) (name keybase1.TeamName, err error) {
rres := g.Resolver.ResolveFullExpression(ctx, fmt.Sprintf("tid:%s", id))
if err = rres.GetError(); err != nil {
return keybase1.TeamName{}, err
}
name = rres.GetTeamName()
err = g.GetTeamLoader().VerifyTeamName(ctx, id, name)
if err != nil {
return keybase1.TeamName{}, err
}
return name, nil
}
// ResolveNameToID takes a team name and resolve it to a team ID. It can use server-assist
// but always cryptographically checks the result.
func ResolveNameToID(ctx context.Context, g *libkb.GlobalContext, name keybase1.TeamName) (id keybase1.TeamID, err error) {
rres := g.Resolver.ResolveFullExpression(ctx, fmt.Sprintf("team:%s", name))
if err = rres.GetError(); err != nil {
return keybase1.TeamID(""), err
}
id = rres.GetTeamID()
err = g.GetTeamLoader().VerifyTeamName(ctx, id, name)
if err != nil {
return keybase1.TeamID(""), err
}
return id, nil
}