diff --git a/internal/token/repository.go b/internal/token/repository.go index 296cffd..0f48e49 100644 --- a/internal/token/repository.go +++ b/internal/token/repository.go @@ -13,6 +13,6 @@ type Repository interface { } var ( - ErrExist error = errors.New("token already exist") - ErrNotExist error = errors.New("token not exist") + ErrExist = errors.New("token already exist") + ErrNotExist = errors.New("token not exist") ) diff --git a/internal/token/repository/bolt/bolt_token.go b/internal/token/repository/bolt/bolt_token.go index b3be95a..d141bbe 100644 --- a/internal/token/repository/bolt/bolt_token.go +++ b/internal/token/repository/bolt/bolt_token.go @@ -46,6 +46,7 @@ func (repo *boltTokenRepository) Create(ctx context.Context, accessToken *domain } if err = repo.db.Update(func(tx *bolt.Tx) error { + //nolint: exhaustivestruct bkt, err := tx.CreateBucketIfNotExists(Token{}.Bucket()) if err != nil { return errors.Wrap(err, "cannot create bucket") diff --git a/internal/token/repository/bolt/bolt_token_test.go b/internal/token/repository/bolt/bolt_token_test.go index 21c5e23..a60d949 100644 --- a/internal/token/repository/bolt/bolt_token_test.go +++ b/internal/token/repository/bolt/bolt_token_test.go @@ -19,12 +19,15 @@ import ( func TestCreate(t *testing.T) { t.Parallel() + //nolint: exhaustivestruct db, cleanup := util.TestBolt(t, repository.Token{}.Bucket()) t.Cleanup(cleanup) require.NoError(t, db.Update(func(tx *bolt.Tx) error { + //nolint: exhaustivestruct _, err := tx.CreateBucketIfNotExists(repository.Token{}.Bucket()) + //nolint: wrapcheck return err })) @@ -38,7 +41,8 @@ func TestCreate(t *testing.T) { require.NoError(t, db.View(func(tx *bolt.Tx) (err error) { dto := new(repository.Token) - return dto.Bind(tx.Bucket(repository.Token{}.Bucket()).Get([]byte(accessToken.AccessToken)), result) + //nolint: wrapcheck + return dto.Bind(tx.Bucket(dto.Bucket()).Get([]byte(accessToken.AccessToken)), result) })) assert.Equal(t, accessToken, result) @@ -48,12 +52,14 @@ func TestCreate(t *testing.T) { func TestGet(t *testing.T) { t.Parallel() + //nolint: exhaustivestruct db, cleanup := util.TestBolt(t, repository.Token{}.Bucket()) t.Cleanup(cleanup) accessToken := domain.TestToken(t) require.NoError(t, db.Update(func(tx *bolt.Tx) error { + //nolint: exhaustivestruct bkt, err := tx.CreateBucketIfNotExists(repository.Token{}.Bucket()) if err != nil { return errors.Wrap(err, "cannot create bucket") diff --git a/internal/token/repository/memory/memory_token.go b/internal/token/repository/memory/memory_token.go index 5b76efa..2e3c1eb 100644 --- a/internal/token/repository/memory/memory_token.go +++ b/internal/token/repository/memory/memory_token.go @@ -2,7 +2,6 @@ package memory import ( "context" - "errors" "path" "sync" @@ -18,8 +17,6 @@ type memoryTokenRepository struct { const DefaultPathPrefix string = "tokens" -var ErrExist error = errors.New("token already exist") - func NewMemoryTokenRepository(store *sync.Map) token.Repository { return &memoryTokenRepository{ store: store, @@ -33,7 +30,7 @@ func (repo *memoryTokenRepository) Create(ctx context.Context, accessToken *doma } if t != nil { - return ErrExist + return token.ErrExist } repo.store.Store(path.Join(DefaultPathPrefix, accessToken.AccessToken), accessToken) diff --git a/internal/token/repository/memory/memory_token_test.go b/internal/token/repository/memory/memory_token_test.go index 42f8b16..8223ae6 100644 --- a/internal/token/repository/memory/memory_token_test.go +++ b/internal/token/repository/memory/memory_token_test.go @@ -10,6 +10,7 @@ import ( "github.com/stretchr/testify/require" "source.toby3d.me/website/oauth/internal/domain" + "source.toby3d.me/website/oauth/internal/token" repository "source.toby3d.me/website/oauth/internal/token/repository/memory" ) @@ -17,27 +18,27 @@ func TestCreate(t *testing.T) { t.Parallel() store := new(sync.Map) - token := domain.TestToken(t) + accessToken := domain.TestToken(t) repo := repository.NewMemoryTokenRepository(store) - require.NoError(t, repo.Create(context.TODO(), token)) + require.NoError(t, repo.Create(context.TODO(), accessToken)) - result, ok := store.Load(path.Join(repository.DefaultPathPrefix, token.AccessToken)) + result, ok := store.Load(path.Join(repository.DefaultPathPrefix, accessToken.AccessToken)) assert.True(t, ok) - assert.Equal(t, token, result) + assert.Equal(t, accessToken, result) - assert.ErrorIs(t, repo.Create(context.TODO(), token), repository.ErrExist) + assert.ErrorIs(t, repo.Create(context.TODO(), accessToken), token.ErrExist) } func TestGet(t *testing.T) { t.Parallel() store := new(sync.Map) - token := domain.TestToken(t) + accessToken := domain.TestToken(t) - store.Store(path.Join(repository.DefaultPathPrefix, token.AccessToken), token) + store.Store(path.Join(repository.DefaultPathPrefix, accessToken.AccessToken), accessToken) - result, err := repository.NewMemoryTokenRepository(store).Get(context.TODO(), token.AccessToken) + result, err := repository.NewMemoryTokenRepository(store).Get(context.TODO(), accessToken.AccessToken) assert.NoError(t, err) - assert.Equal(t, token, result) + assert.Equal(t, accessToken, result) } diff --git a/internal/token/usecase.go b/internal/token/usecase.go index 1efefc7..126438b 100644 --- a/internal/token/usecase.go +++ b/internal/token/usecase.go @@ -12,4 +12,4 @@ type UseCase interface { Revoke(ctx context.Context, accessToken string) error } -var ErrRevoke error = errors.New("this token has been revoked") +var ErrRevoke = errors.New("this token has been revoked") diff --git a/internal/token/usecase/token_ucase.go b/internal/token/usecase/token_ucase.go index 2678f5b..befcdd8 100644 --- a/internal/token/usecase/token_ucase.go +++ b/internal/token/usecase/token_ucase.go @@ -29,7 +29,7 @@ func NewTokenUseCase(tokens token.Repository, configer config.UseCase) token.Use func (useCase *tokenUseCase) Verify(ctx context.Context, accessToken string) (*domain.Token, error) { find, err := useCase.tokens.Get(ctx, accessToken) if err != nil && !xerrors.Is(err, token.ErrNotExist) { - return nil, err + return nil, errors.Wrap(err, "cannot ckeck token in store") } if find != nil {