30 lines
692 B
Go
30 lines
692 B
Go
package client
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
sessionmodel "git.sendico.io/tech/sxchnge/product/sessions/model"
|
|
"strings"
|
|
|
|
"git.sendico.io/tech/sxchnge/product/sessions/store"
|
|
"git.sendico.io/tech/sxchnge/shared/errors"
|
|
)
|
|
|
|
var ErrUnknownClientID = merrors.Define("unknown client id")
|
|
|
|
func Resolve(ctx context.Context, rtdb refreshtokens.DB, clientID string) (*sessionmodel.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
|
|
}
|