30 lines
680 B
Go
30 lines
680 B
Go
package client
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
"strings"
|
|
|
|
"git.sendico.io/tech/sxchnge/bff/edge/shared/storage/refreshtokens"
|
|
"git.sendico.io/tech/sxchnge/bff/pkg/merrors"
|
|
"git.sendico.io/tech/sxchnge/bff/pkg/model"
|
|
)
|
|
|
|
var ErrUnknownClientID = merrors.Define("unknown client id")
|
|
|
|
func Resolve(ctx context.Context, rtdb refreshtokens.DB, clientID string) (*model.Client, error) {
|
|
clientID = strings.TrimSpace(clientID)
|
|
if clientID == "" {
|
|
return nil, ErrUnknownClientID
|
|
}
|
|
|
|
client, err := rtdb.GetClient(ctx, clientID)
|
|
if errors.Is(err, merrors.ErrNoData) || client == nil {
|
|
return nil, ErrUnknownClientID
|
|
}
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return client, nil
|
|
}
|