2021-09-23 23:06:22 +00:00
|
|
|
package client
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
|
2022-03-13 10:58:34 +00:00
|
|
|
"source.toby3d.me/toby3d/auth/internal/domain"
|
2021-09-23 23:06:22 +00:00
|
|
|
)
|
|
|
|
|
2024-05-08 10:01:49 +00:00
|
|
|
type (
|
|
|
|
UseCase interface {
|
|
|
|
// Discovery returns client public information bu ClientID URL.
|
|
|
|
Discovery(ctx context.Context, id domain.ClientID) (*domain.Client, error)
|
|
|
|
}
|
|
|
|
|
|
|
|
dummyClientUseCase struct{}
|
|
|
|
|
|
|
|
stubClientUseCase struct {
|
|
|
|
client *domain.Client
|
|
|
|
error error
|
|
|
|
}
|
|
|
|
)
|
2021-12-29 20:53:31 +00:00
|
|
|
|
2022-01-29 19:49:28 +00:00
|
|
|
var ErrInvalidMe error = domain.NewError(
|
|
|
|
domain.ErrorCodeInvalidRequest,
|
|
|
|
"cannot fetch client endpoints on provided me",
|
|
|
|
"",
|
|
|
|
)
|
2024-05-08 10:01:49 +00:00
|
|
|
|
|
|
|
// NewDummyClientUseCase returns dummy [UseCase] what do nothing.
|
|
|
|
func NewDummyClientUseCase() UseCase {
|
|
|
|
return dummyClientUseCase{}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (dummyClientUseCase) Discovery(_ context.Context, _ domain.ClientID) (*domain.Client, error) {
|
|
|
|
return nil, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
// NewDummyClientUseCase returns stub [UseCase] what always returns data
|
|
|
|
// provided here.
|
|
|
|
func NewStubClientUseCase(client *domain.Client, err error) UseCase {
|
|
|
|
return &stubClientUseCase{
|
|
|
|
client: client,
|
|
|
|
error: err,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (ucase *stubClientUseCase) Discovery(_ context.Context, _ domain.ClientID) (*domain.Client, error) {
|
|
|
|
return ucase.client, ucase.error
|
|
|
|
}
|