Skip to content
This repository has been archived by the owner on Mar 11, 2021. It is now read-only.

Commit

Permalink
Reorganize account package (#483)
Browse files Browse the repository at this point in the history
- Move all repositories from /account to /account/repository
- Move all services from /account, /account/email/, /account/userprofile to /account/services
  • Loading branch information
alexeykazakov authored and sbose78 committed May 3, 2018
1 parent cf44652 commit 8802ef6
Show file tree
Hide file tree
Showing 75 changed files with 286 additions and 266 deletions.
10 changes: 5 additions & 5 deletions Gopkg.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions Gopkg.toml
Original file line number Diff line number Diff line change
Expand Up @@ -93,19 +93,19 @@ required = [

[[constraint]]
name = "github.com/fabric8-services/fabric8-wit"
revision = "master"
revision = "b59d0dc8ae9b2bfea1fb5dc6ff3552c42b735756"

[[constraint]]
name = "github.com/fabric8-services/fabric8-notification"
revision = "master"
revision = "907d3253a9e8ae42f61ce7c931fd920df20ee0ec"

[[constraint]]
name = "github.com/fabric8-services/fabric8-tenant"
revision = "master"
revision = "2614bf1824754901b7e2f9d7b4ad4d7e3bac61ff"

[[constraint]]
name = "github.com/jstemmer/go-junit-report"
revision = "master"
revision = "1ce4b93a20c6a280a7d5c1ef38c44d0d8c6d80ea"

[[constraint]]
name = "github.com/pilu/fresh"
Expand Down
1 change: 1 addition & 0 deletions account/name_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (

"github.com/fabric8-services/fabric8-auth/account"
"github.com/fabric8-services/fabric8-auth/resource"

"github.com/stretchr/testify/assert"
)

Expand Down
2 changes: 2 additions & 0 deletions account/repository/doc.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
// Package repository provides the wrappers for 'user' and 'identity' related database interactions.
package repository
4 changes: 2 additions & 2 deletions account/identity.go → account/repository/identity.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package account
package repository

import (
"context"
Expand All @@ -7,13 +7,13 @@ import (
"time"

repository "github.com/fabric8-services/fabric8-auth/application/repository/base"
"github.com/fabric8-services/fabric8-auth/authorization"
resource "github.com/fabric8-services/fabric8-auth/authorization/resource/repository"
"github.com/fabric8-services/fabric8-auth/errors"
"github.com/fabric8-services/fabric8-auth/gormsupport"
"github.com/fabric8-services/fabric8-auth/log"

"database/sql"
"github.com/fabric8-services/fabric8-auth/authorization"
"github.com/goadesign/goa"
"github.com/jinzhu/gorm"
errs "github.com/pkg/errors"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package account_test
package repository_test

import (
"testing"

"github.com/fabric8-services/fabric8-auth/account"
"github.com/fabric8-services/fabric8-auth/account/repository"
"github.com/fabric8-services/fabric8-auth/errors"
"github.com/fabric8-services/fabric8-auth/gormtestsupport"
"github.com/fabric8-services/fabric8-auth/resource"
Expand All @@ -29,15 +29,15 @@ func (s *identityBlackBoxTest) SetupTest() {

func (s *identityBlackBoxTest) TestOKToDelete() {
// given
identity := &account.Identity{
identity := &repository.Identity{
ID: uuid.NewV4(),
Username: "someuserTestIdentity",
ProviderType: account.KeycloakIDP}
ProviderType: repository.KeycloakIDP}

identity2 := &account.Identity{
identity2 := &repository.Identity{
ID: uuid.NewV4(),
Username: "onemoreuserTestIdentity",
ProviderType: account.KeycloakIDP}
ProviderType: repository.KeycloakIDP}

err := s.Application.Identities().Create(s.Ctx, identity)
require.Nil(s.T(), err, "Could not create identity")
Expand Down Expand Up @@ -108,18 +108,18 @@ func (s *identityBlackBoxTest) TestLoadIdentityAndUserFailsIfUserOrIdentityDoNot

func (s *identityBlackBoxTest) TestLoadIdentityAndUserOK() {
// Create test user & identity
testUser := &account.User{
testUser := &repository.User{
ID: uuid.NewV4(),
Email: uuid.NewV4().String(),
FullName: "TestLoadIdentityAndUserOK Developer",
Cluster: "https://api.starter-us-east-2a.openshift.com",
}
testIdentity := &account.Identity{
testIdentity := &repository.Identity{
Username: "TestLoadIdentityAndUserOK" + uuid.NewV4().String(),
ProviderType: account.KeycloakIDP,
ProviderType: repository.KeycloakIDP,
User: *testUser,
}
userRepository := account.NewUserRepository(s.DB)
userRepository := repository.NewUserRepository(s.DB)
userRepository.Create(s.Ctx, testUser)
s.Application.Identities().Create(s.Ctx, testIdentity)

Expand All @@ -138,18 +138,18 @@ func (s *identityBlackBoxTest) TestLoadIdentityAndUserOK() {

func (s *identityBlackBoxTest) TestUserIdentityIsUser() {
// Create test user & identity
testUser := &account.User{
testUser := &repository.User{
ID: uuid.NewV4(),
Email: uuid.NewV4().String(),
FullName: "TestUserIdentityIsUser Developer",
Cluster: "https://api.starter-us-east-2a.openshift.com",
}
testIdentity := &account.Identity{
testIdentity := &repository.Identity{
Username: "TestUserIdentityIsUser" + uuid.NewV4().String(),
ProviderType: account.KeycloakIDP,
ProviderType: repository.KeycloakIDP,
User: *testUser,
}
userRepository := account.NewUserRepository(s.DB)
userRepository := repository.NewUserRepository(s.DB)
userRepository.Create(s.Ctx, testUser)
s.Application.Identities().Create(s.Ctx, testIdentity)

Expand Down Expand Up @@ -242,11 +242,11 @@ func (s *identityBlackBoxTest) TestFindIdentitiesByResourceTypeWithParentResourc
require.Len(s.T(), identities, 2)
}

func createAndLoad(s *identityBlackBoxTest) *account.Identity {
identity := &account.Identity{
func createAndLoad(s *identityBlackBoxTest) *repository.Identity {
identity := &repository.Identity{
ID: uuid.NewV4(),
Username: "someuserTestIdentity2",
ProviderType: account.KeycloakIDP}
ProviderType: repository.KeycloakIDP}

err := s.Application.Identities().Create(s.Ctx, identity)
require.Nil(s.T(), err, "Could not create identity")
Expand Down
14 changes: 7 additions & 7 deletions account/user.go → account/repository/user.go
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
package account
package repository

import (
"context"
"fmt"
"strconv"
"time"

"github.com/fabric8-services/fabric8-auth/account"
repository "github.com/fabric8-services/fabric8-auth/application/repository/base"
"github.com/fabric8-services/fabric8-auth/errors"
"github.com/fabric8-services/fabric8-auth/gormsupport"
"github.com/fabric8-services/fabric8-auth/log"

"fmt"

"github.com/goadesign/goa"
"github.com/jinzhu/gorm"
errs "github.com/pkg/errors"
uuid "github.com/satori/go.uuid"
"github.com/satori/go.uuid"
)

// In future, we could add support for FieldDefinitions the way we have for workitems.
Expand All @@ -37,9 +37,9 @@ type User struct {
FeatureLevel string // the level of features that the user opted in (to access unreleased features). Defaults to `released` so no non-released feature is enabled for the user.
Cluster string // The OpenShift cluster allocted to the user.
// Whether the user has been deprovisioned
Deprovisioned bool `gorm:"column:deprovisioned"`
Identities []Identity // has many Identities from different IDPs
ContextInformation ContextInformation `sql:"type:jsonb"` // context information of the user activity
Deprovisioned bool `gorm:"column:deprovisioned"`
Identities []Identity // has many Identities from different IDPs
ContextInformation account.ContextInformation `sql:"type:jsonb"` // context information of the user activity
}

const (
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
package account_test
package repository_test

import (
"fmt"
"testing"

"github.com/fabric8-services/fabric8-auth/account"
"github.com/fabric8-services/fabric8-auth/account/repository"
"github.com/fabric8-services/fabric8-auth/errors"
"github.com/fabric8-services/fabric8-auth/gormtestsupport"

Expand All @@ -16,7 +17,7 @@ import (

type userBlackBoxTest struct {
gormtestsupport.DBTestSuite
repo account.UserRepository
repo repository.UserRepository
}

func TestRunUserBlackBoxTest(t *testing.T) {
Expand All @@ -25,7 +26,7 @@ func TestRunUserBlackBoxTest(t *testing.T) {

func (s *userBlackBoxTest) SetupTest() {
s.DBTestSuite.SetupTest()
s.repo = account.NewUserRepository(s.DB)
s.repo = repository.NewUserRepository(s.DB)
}

func (s *userBlackBoxTest) TestOKToDelete() {
Expand Down Expand Up @@ -93,7 +94,7 @@ func (s *userBlackBoxTest) TestOKToSave() {

func (s *userBlackBoxTest) TestCreateUserWithoutClusterFails() {
t := s.T()
user := &account.User{
user := &repository.User{
ID: uuid.NewV4(),
Email: "noclustersomeuser@TestUser" + uuid.NewV4().String(),
FullName: "someuserTestUser" + uuid.NewV4().String(),
Expand Down Expand Up @@ -165,12 +166,12 @@ func (s *userBlackBoxTest) TestEmailFilters() {

// Filter users by email

users, err := s.repo.Query(account.UserFilterByEmail(userWithPublicEmail.Email))
users, err := s.repo.Query(repository.UserFilterByEmail(userWithPublicEmail.Email))
require.NoError(s.T(), err)
require.Len(s.T(), users, 1)
require.Equal(s.T(), userWithPublicEmail.Email, users[0].Email)

users, err = s.repo.Query(account.UserFilterByEmail(userWithPrivateEmail.Email))
users, err = s.repo.Query(repository.UserFilterByEmail(userWithPrivateEmail.Email))
require.NoError(s.T(), err)
require.Len(s.T(), users, 1)
require.Equal(s.T(), userWithPrivateEmail.Email, users[0].Email)
Expand All @@ -183,30 +184,30 @@ func (s *userBlackBoxTest) TestEmailFilters() {
// Filter users by email and email privacy

// Search for a public email and the give email is public. User is found
users, err = s.repo.Query(account.UserFilterByEmail(userWithPublicEmail.Email), account.UserFilterByEmailPrivacy(false))
users, err = s.repo.Query(repository.UserFilterByEmail(userWithPublicEmail.Email), repository.UserFilterByEmailPrivacy(false))
require.NoError(s.T(), err)
require.Len(s.T(), users, 1)
require.Equal(s.T(), userWithPublicEmail.Email, users[0].Email)

// Search for a public email but the give email is private. User is not found
users, err = s.repo.Query(account.UserFilterByEmail(userWithPrivateEmail.Email), account.UserFilterByEmailPrivacy(false))
users, err = s.repo.Query(repository.UserFilterByEmail(userWithPrivateEmail.Email), repository.UserFilterByEmailPrivacy(false))
require.NoError(s.T(), err)
require.Len(s.T(), users, 0)

// Search for a private email and the give email is private. User is found
users, err = s.repo.Query(account.UserFilterByEmail(userWithPrivateEmail.Email), account.UserFilterByEmailPrivacy(true))
users, err = s.repo.Query(repository.UserFilterByEmail(userWithPrivateEmail.Email), repository.UserFilterByEmailPrivacy(true))
require.NoError(s.T(), err)
require.Len(s.T(), users, 1)
require.Equal(s.T(), userWithPrivateEmail.Email, users[0].Email)

// Search for a private email but the give email is public. User is not found
users, err = s.repo.Query(account.UserFilterByEmail(userWithPublicEmail.Email), account.UserFilterByEmailPrivacy(true))
users, err = s.repo.Query(repository.UserFilterByEmail(userWithPublicEmail.Email), repository.UserFilterByEmailPrivacy(true))
require.NoError(s.T(), err)
require.Len(s.T(), users, 0)
}

func (s *userBlackBoxTest) checkPrivateEmailFilter(privateEmails bool, expectedEmail string) {
users, err := s.repo.Query(account.UserFilterByEmailPrivacy(privateEmails))
users, err := s.repo.Query(repository.UserFilterByEmailPrivacy(privateEmails))
require.NoError(s.T(), err)
require.True(s.T(), len(users) > 0)
var found bool
Expand All @@ -219,8 +220,8 @@ func (s *userBlackBoxTest) checkPrivateEmailFilter(privateEmails bool, expectedE
require.True(s.T(), found)
}

func createAndLoadUser(s *userBlackBoxTest, emailPrivate bool) *account.User {
user := &account.User{
func createAndLoadUser(s *userBlackBoxTest, emailPrivate bool) *repository.User {
user := &repository.User{
ID: uuid.NewV4(),
Email: "someuser@TestUser" + uuid.NewV4().String(),
EmailPrivate: emailPrivate,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package account
package repository

import (
"context"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,23 @@
package account_test
package repository_test

import (
"context"
"github.com/fabric8-services/fabric8-auth/account"
"testing"

"github.com/fabric8-services/fabric8-auth/account/repository"
"github.com/fabric8-services/fabric8-auth/errors"
"github.com/fabric8-services/fabric8-auth/gormtestsupport"
"github.com/fabric8-services/fabric8-auth/test"

"github.com/satori/go.uuid"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/suite"
"testing"
)

type verificationCodeBlackboxTest struct {
gormtestsupport.DBTestSuite
repo *account.GormVerificationCodeRepository
repo *repository.GormVerificationCodeRepository
}

func TestRunverificationCodeBlackboxTest(t *testing.T) {
Expand All @@ -25,7 +27,7 @@ func TestRunverificationCodeBlackboxTest(t *testing.T) {
func (s *verificationCodeBlackboxTest) SetupTest() {
s.DBTestSuite.SetupTest()
s.DB = s.DB.Debug()
s.repo = account.NewVerificationCodeRepository(s.DB)
s.repo = repository.NewVerificationCodeRepository(s.DB)
}

func (s *verificationCodeBlackboxTest) TestVerificationCodeOKToLoad() {
Expand Down Expand Up @@ -54,13 +56,13 @@ func (s *verificationCodeBlackboxTest) TestVerificationCodeOKToDelete() {
require.Error(s.T(), err, errors.NotFoundError{})
}

func createAndLoadVerificationCode(s *verificationCodeBlackboxTest) *account.VerificationCode {
func createAndLoadVerificationCode(s *verificationCodeBlackboxTest) *repository.VerificationCode {

identity, err := test.CreateTestIdentityAndUser(s.DB, uuid.NewV4().String(), "kc")

require.NoError(s.T(), err)

verificationCode := account.VerificationCode{
verificationCode := repository.VerificationCode{
ID: uuid.NewV4(),
Code: uuid.NewV4().String(),
UserID: identity.User.ID,
Expand All @@ -76,7 +78,7 @@ func createAndLoadVerificationCode(s *verificationCodeBlackboxTest) *account.Ver
return verificationCodeRetrieved
}

func (s *verificationCodeBlackboxTest) assertCode(expected account.VerificationCode, actual account.VerificationCode) {
func (s *verificationCodeBlackboxTest) assertCode(expected repository.VerificationCode, actual repository.VerificationCode) {
assert.Equal(s.T(), expected.Code, actual.Code)
assert.Equal(s.T(), expected.ID, actual.ID)
assert.Equal(s.T(), actual.UserID, expected.UserID)
Expand Down
2 changes: 2 additions & 0 deletions account/service/doc.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
// Package service provides the code which encapsulates business logic for managing users and identities
package service
Loading

0 comments on commit 8802ef6

Please sign in to comment.