diff --git a/grade/internal/infrastructure/repositories/artifact/artifact_faker.go b/grade/internal/infrastructure/repositories/artifact/artifact_faker.go index 0c111eeb..b5e2569d 100644 --- a/grade/internal/infrastructure/repositories/artifact/artifact_faker.go +++ b/grade/internal/infrastructure/repositories/artifact/artifact_faker.go @@ -2,13 +2,13 @@ package artifact import ( "github.com/emacsway/grade/grade/internal/domain/artifact" - "github.com/emacsway/grade/grade/internal/infrastructure" competenceRepo "github.com/emacsway/grade/grade/internal/infrastructure/repositories/competence" memberRepo "github.com/emacsway/grade/grade/internal/infrastructure/repositories/member" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" ) func NewArtifactFaker( - session infrastructure.DbSession, + session session.DbSession, opts ...artifact.ArtifactFakerOption, ) *artifact.ArtifactFaker { opts = append( diff --git a/grade/internal/infrastructure/repositories/artifact/artifact_repository.go b/grade/internal/infrastructure/repositories/artifact/artifact_repository.go index 90bb5681..200a28a1 100644 --- a/grade/internal/infrastructure/repositories/artifact/artifact_repository.go +++ b/grade/internal/infrastructure/repositories/artifact/artifact_repository.go @@ -6,12 +6,12 @@ import ( artifactVal "github.com/emacsway/grade/grade/internal/domain/artifact/values" "github.com/emacsway/grade/grade/internal/domain/seedwork/aggregate" tenantVal "github.com/emacsway/grade/grade/internal/domain/tenant/values" - "github.com/emacsway/grade/grade/internal/infrastructure" "github.com/emacsway/grade/grade/internal/infrastructure/repositories/artifact/queries" "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/repository" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" ) -func NewArtifactRepository(session infrastructure.DbSession) *ArtifactRepository { +func NewArtifactRepository(session session.DbSession) *ArtifactRepository { return &ArtifactRepository{ session: session, eventStore: repository.NewEventStore(session, "Artifact", eventQuery), @@ -19,7 +19,7 @@ func NewArtifactRepository(session infrastructure.DbSession) *ArtifactRepository } type ArtifactRepository struct { - session infrastructure.DbSession + session session.DbSession eventStore *repository.EventStore } @@ -32,7 +32,7 @@ func (r *ArtifactRepository) NextId(tenantId tenantVal.TenantId) (artifactVal.Ar return q.Get(r.session) } -func eventQuery(iEvent aggregate.PersistentDomainEvent) (q infrastructure.EventSourcedQueryEvaluator) { +func eventQuery(iEvent aggregate.PersistentDomainEvent) (q session.EventSourcedQueryEvaluator) { switch event := iEvent.(type) { case *events.ArtifactProposed: q = &queries.ArtifactProposedQuery{} diff --git a/grade/internal/infrastructure/repositories/artifact/artifact_repository_test.go b/grade/internal/infrastructure/repositories/artifact/artifact_repository_test.go index 00674f6f..f5a359e6 100644 --- a/grade/internal/infrastructure/repositories/artifact/artifact_repository_test.go +++ b/grade/internal/infrastructure/repositories/artifact/artifact_repository_test.go @@ -10,9 +10,9 @@ import ( "github.com/emacsway/grade/grade/internal/domain/member" "github.com/emacsway/grade/grade/internal/domain/seedwork/aggregate" "github.com/emacsway/grade/grade/internal/domain/tenant" - "github.com/emacsway/grade/grade/internal/infrastructure" memberRepo "github.com/emacsway/grade/grade/internal/infrastructure/repositories/member" tenantRepo "github.com/emacsway/grade/grade/internal/infrastructure/repositories/tenant" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/testutils" ) @@ -77,7 +77,7 @@ func testGet(t *testing.T, repositoryOption RepositoryOption) { type RepositoryOption struct { Name string Repository *ArtifactRepository - Session infrastructure.DbSession + Session session.DbSession TenantId uint MemberId uint } @@ -92,7 +92,7 @@ func newPostgresqlRepositoryOption(t *testing.T) RepositoryOption { var tenantExp tenant.TenantExporter db, err := testutils.NewTestDb() require.NoError(t, err) - session := infrastructure.NewPgxSession(db) + session := session.NewPgxSession(db) tf := tenantRepo.NewTenantFaker(session) aTenant, err := tf.Create() require.NoError(t, err) diff --git a/grade/internal/infrastructure/repositories/artifact/queries/artifact_get_query.go b/grade/internal/infrastructure/repositories/artifact/queries/artifact_get_query.go index fe983435..e725ad22 100644 --- a/grade/internal/infrastructure/repositories/artifact/queries/artifact_get_query.go +++ b/grade/internal/infrastructure/repositories/artifact/queries/artifact_get_query.go @@ -2,15 +2,15 @@ package queries import ( "github.com/emacsway/grade/grade/internal/domain/artifact" - "github.com/emacsway/grade/grade/internal/infrastructure" "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/repository" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" ) type ArtifactGetQuery struct { repository.EventGetQuery } -func (q *ArtifactGetQuery) Get(s infrastructure.DbSessionQuerier) (*artifact.Artifact, error) { +func (q *ArtifactGetQuery) Get(s session.DbSessionQuerier) (*artifact.Artifact, error) { stream, err := q.Stream(s) if err != nil { return nil, err diff --git a/grade/internal/infrastructure/repositories/artifact/queries/artifact_next_id_get_query.go b/grade/internal/infrastructure/repositories/artifact/queries/artifact_next_id_get_query.go index 61c69662..6636bb01 100644 --- a/grade/internal/infrastructure/repositories/artifact/queries/artifact_next_id_get_query.go +++ b/grade/internal/infrastructure/repositories/artifact/queries/artifact_next_id_get_query.go @@ -6,7 +6,7 @@ import ( artifactVal "github.com/emacsway/grade/grade/internal/domain/artifact/values" "github.com/emacsway/grade/grade/internal/domain/seedwork/exporters" tenantVal "github.com/emacsway/grade/grade/internal/domain/tenant/values" - "github.com/emacsway/grade/grade/internal/infrastructure" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" ) type ArtifactNextIdGetQuery struct { @@ -23,7 +23,7 @@ func (q ArtifactNextIdGetQuery) tenantIdValue() uint { return uint(tenantIdExp) } -func (q *ArtifactNextIdGetQuery) Get(s infrastructure.DbSessionSingleQuerier) (artifactVal.ArtifactId, error) { +func (q *ArtifactNextIdGetQuery) Get(s session.DbSessionSingleQuerier) (artifactVal.ArtifactId, error) { rec := &artifactVal.ArtifactIdReconstitutor{} rec.TenantId = q.tenantIdValue() err := s.QueryRow(q.sql()).Scan(&rec.ArtifactId) diff --git a/grade/internal/infrastructure/repositories/artifact/queries/artifact_proposed_query.go b/grade/internal/infrastructure/repositories/artifact/queries/artifact_proposed_query.go index 7ae91135..ff636775 100644 --- a/grade/internal/infrastructure/repositories/artifact/queries/artifact_proposed_query.go +++ b/grade/internal/infrastructure/repositories/artifact/queries/artifact_proposed_query.go @@ -7,8 +7,8 @@ import ( competenceVal "github.com/emacsway/grade/grade/internal/domain/competence/values" memberVal "github.com/emacsway/grade/grade/internal/domain/member/values" "github.com/emacsway/grade/grade/internal/domain/seedwork/exporters" - "github.com/emacsway/grade/grade/internal/infrastructure" "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/repository" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" ) type ArtifactProposedQuery struct { @@ -56,7 +56,7 @@ func (q *ArtifactProposedQuery) SetCreatedAt(val time.Time) { q.payload.CreatedAt = val } -func (q *ArtifactProposedQuery) Evaluate(s infrastructure.DbSession) (infrastructure.Result, error) { +func (q *ArtifactProposedQuery) Evaluate(s session.DbSession) (session.Result, error) { q.EventInsertQuery.SetPayload(q.payload) return q.EventInsertQuery.Evaluate(s) } diff --git a/grade/internal/infrastructure/repositories/competence/competence_faker.go b/grade/internal/infrastructure/repositories/competence/competence_faker.go index 5a5fd31b..a9238e0a 100644 --- a/grade/internal/infrastructure/repositories/competence/competence_faker.go +++ b/grade/internal/infrastructure/repositories/competence/competence_faker.go @@ -2,12 +2,12 @@ package competence import ( "github.com/emacsway/grade/grade/internal/domain/competence" - "github.com/emacsway/grade/grade/internal/infrastructure" memberRepo "github.com/emacsway/grade/grade/internal/infrastructure/repositories/member" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" ) func NewCompetenceFaker( - session infrastructure.DbSession, + session session.DbSession, opts ...competence.CompetenceFakerOption, ) *competence.CompetenceFaker { opts = append( diff --git a/grade/internal/infrastructure/repositories/competence/competence_repository.go b/grade/internal/infrastructure/repositories/competence/competence_repository.go index c2f96280..92c3805e 100644 --- a/grade/internal/infrastructure/repositories/competence/competence_repository.go +++ b/grade/internal/infrastructure/repositories/competence/competence_repository.go @@ -5,18 +5,18 @@ import ( "github.com/emacsway/grade/grade/internal/domain/competence/events" competenceVal "github.com/emacsway/grade/grade/internal/domain/competence/values" "github.com/emacsway/grade/grade/internal/domain/seedwork/aggregate" - "github.com/emacsway/grade/grade/internal/infrastructure" "github.com/emacsway/grade/grade/internal/infrastructure/repositories/competence/queries" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" ) -func NewCompetenceRepository(session infrastructure.DbSession) *CompetenceRepository { +func NewCompetenceRepository(session session.DbSession) *CompetenceRepository { return &CompetenceRepository{ session: session, } } type CompetenceRepository struct { - session infrastructure.DbSession + session session.DbSession } func (r *CompetenceRepository) Insert(agg *competence.Competence) error { @@ -46,7 +46,7 @@ func (r *CompetenceRepository) save(agg *competence.Competence) error { agg.ClearPendingDomainEvents() return nil } -func (r CompetenceRepository) eventQuery(iEvent aggregate.DomainEvent) (q infrastructure.QueryEvaluator) { +func (r CompetenceRepository) eventQuery(iEvent aggregate.DomainEvent) (q session.QueryEvaluator) { switch event := iEvent.(type) { case *events.CompetenceCreated: q = &queries.CompetenceCreatedQuery{} diff --git a/grade/internal/infrastructure/repositories/competence/competence_repository_test.go b/grade/internal/infrastructure/repositories/competence/competence_repository_test.go index b526fddb..16a852ed 100644 --- a/grade/internal/infrastructure/repositories/competence/competence_repository_test.go +++ b/grade/internal/infrastructure/repositories/competence/competence_repository_test.go @@ -10,9 +10,9 @@ import ( competenceVal "github.com/emacsway/grade/grade/internal/domain/competence/values" "github.com/emacsway/grade/grade/internal/domain/member" "github.com/emacsway/grade/grade/internal/domain/tenant" - "github.com/emacsway/grade/grade/internal/infrastructure" memberRepo "github.com/emacsway/grade/grade/internal/infrastructure/repositories/member" tenantRepo "github.com/emacsway/grade/grade/internal/infrastructure/repositories/tenant" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/testutils" ) @@ -98,7 +98,7 @@ func testGet(t *testing.T, repositoryOption RepositoryOption) { type RepositoryOption struct { Name string Repository *CompetenceRepository - Session infrastructure.DbSession + Session session.DbSession TenantId uint MemberId uint } @@ -113,7 +113,7 @@ func newPostgresqlRepositoryOption(t *testing.T) RepositoryOption { var tenantExp tenant.TenantExporter db, err := testutils.NewTestDb() require.NoError(t, err) - session := infrastructure.NewPgxSession(db) + session := session.NewPgxSession(db) tf := tenantRepo.NewTenantFaker(session) aTenant, err := tf.Create() require.NoError(t, err) diff --git a/grade/internal/infrastructure/repositories/competence/queries/competence_created_query.go b/grade/internal/infrastructure/repositories/competence/queries/competence_created_query.go index 7973e2f1..fd036482 100644 --- a/grade/internal/infrastructure/repositories/competence/queries/competence_created_query.go +++ b/grade/internal/infrastructure/repositories/competence/queries/competence_created_query.go @@ -7,7 +7,7 @@ import ( memberVal "github.com/emacsway/grade/grade/internal/domain/member/values" "github.com/emacsway/grade/grade/internal/domain/seedwork/exporters" tenantVal "github.com/emacsway/grade/grade/internal/domain/tenant/values" - "github.com/emacsway/grade/grade/internal/infrastructure" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" ) type CompetenceCreatedQuery struct { @@ -61,7 +61,7 @@ func (q *CompetenceCreatedQuery) SetAggregateVersion(val uint) { func (q *CompetenceCreatedQuery) SetEventType(val string) { } -func (q *CompetenceCreatedQuery) Evaluate(s infrastructure.DbSession) (infrastructure.Result, error) { +func (q *CompetenceCreatedQuery) Evaluate(s session.DbSession) (session.Result, error) { result, err := s.Exec(q.sql(), q.params[:]...) if err != nil { return result, err diff --git a/grade/internal/infrastructure/repositories/competence/queries/competence_get_query.go b/grade/internal/infrastructure/repositories/competence/queries/competence_get_query.go index ea5cc03d..73ccaabf 100644 --- a/grade/internal/infrastructure/repositories/competence/queries/competence_get_query.go +++ b/grade/internal/infrastructure/repositories/competence/queries/competence_get_query.go @@ -3,7 +3,7 @@ package queries import ( "github.com/emacsway/grade/grade/internal/domain/competence" competenceVal "github.com/emacsway/grade/grade/internal/domain/competence/values" - "github.com/emacsway/grade/grade/internal/infrastructure" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" ) type CompetenceGetQuery struct { @@ -24,7 +24,7 @@ func (q CompetenceGetQuery) params() []any { return []any{idExp.TenantId, idExp.CompetenceId} } -func (q *CompetenceGetQuery) Get(s infrastructure.DbSessionSingleQuerier) (*competence.Competence, error) { +func (q *CompetenceGetQuery) Get(s session.DbSessionSingleQuerier) (*competence.Competence, error) { rec := &competence.CompetenceReconstitutor{} err := s.QueryRow(q.sql(), q.params()...).Scan( &rec.Id.TenantId, &rec.Id.CompetenceId, &rec.Name, &rec.OwnerId.MemberId, diff --git a/grade/internal/infrastructure/repositories/competence/queries/name_updated_query.go b/grade/internal/infrastructure/repositories/competence/queries/name_updated_query.go index 9270bdf0..e4363992 100644 --- a/grade/internal/infrastructure/repositories/competence/queries/name_updated_query.go +++ b/grade/internal/infrastructure/repositories/competence/queries/name_updated_query.go @@ -5,7 +5,7 @@ import ( "github.com/emacsway/grade/grade/internal/domain/seedwork/aggregate" "github.com/emacsway/grade/grade/internal/domain/seedwork/exporters" tenantVal "github.com/emacsway/grade/grade/internal/domain/tenant/values" - "github.com/emacsway/grade/grade/internal/infrastructure" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" ) type NameUpdatedQuery struct { @@ -49,7 +49,7 @@ func (q *NameUpdatedQuery) SetAggregateVersion(val uint) { func (q *NameUpdatedQuery) SetEventType(val string) { } -func (q *NameUpdatedQuery) Evaluate(s infrastructure.DbSession) (infrastructure.Result, error) { +func (q *NameUpdatedQuery) Evaluate(s session.DbSession) (session.Result, error) { result, err := s.Exec(q.sql(), q.params[:]...) if err != nil { return result, err diff --git a/grade/internal/infrastructure/repositories/competence/queries/name_updated_query_with_lock.go b/grade/internal/infrastructure/repositories/competence/queries/name_updated_query_with_lock.go index 3aebaa3e..09e78ee1 100644 --- a/grade/internal/infrastructure/repositories/competence/queries/name_updated_query_with_lock.go +++ b/grade/internal/infrastructure/repositories/competence/queries/name_updated_query_with_lock.go @@ -5,7 +5,7 @@ import ( "github.com/emacsway/grade/grade/internal/domain/seedwork/aggregate" "github.com/emacsway/grade/grade/internal/domain/seedwork/exporters" tenantVal "github.com/emacsway/grade/grade/internal/domain/tenant/values" - "github.com/emacsway/grade/grade/internal/infrastructure" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" ) /** @@ -68,7 +68,7 @@ func (q *NameUpdatedQueryWithLock) SetName(val values.Name) { func (q *NameUpdatedQueryWithLock) SetEventType(val string) { } -func (q *NameUpdatedQueryWithLock) Evaluate(s infrastructure.DbSession) (infrastructure.Result, error) { +func (q *NameUpdatedQueryWithLock) Evaluate(s session.DbSession) (session.Result, error) { result, err := s.Exec(q.sql(), q.params[:]...) if err != nil { return result, err diff --git a/grade/internal/infrastructure/repositories/competence/queries/optimistic_offline_lock_query.go b/grade/internal/infrastructure/repositories/competence/queries/optimistic_offline_lock_query.go index e072216f..f0efc8e4 100644 --- a/grade/internal/infrastructure/repositories/competence/queries/optimistic_offline_lock_query.go +++ b/grade/internal/infrastructure/repositories/competence/queries/optimistic_offline_lock_query.go @@ -8,7 +8,7 @@ import ( "github.com/emacsway/grade/grade/internal/domain/seedwork/aggregate" "github.com/emacsway/grade/grade/internal/domain/seedwork/exporters" tenantVal "github.com/emacsway/grade/grade/internal/domain/tenant/values" - "github.com/emacsway/grade/grade/internal/infrastructure" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" ) type OptimisticOfflineLockLockQuery struct { @@ -56,7 +56,7 @@ func (q *OptimisticOfflineLockLockQuery) SetVersion(val uint) { q.params[3] = val } -func (q *OptimisticOfflineLockLockQuery) Evaluate(s infrastructure.DbSession) (infrastructure.Result, error) { +func (q *OptimisticOfflineLockLockQuery) Evaluate(s session.DbSession) (session.Result, error) { result, err := s.Exec(q.sql(), q.params[:]...) if err != nil { return result, err diff --git a/grade/internal/infrastructure/repositories/endorser/endorser_faker.go b/grade/internal/infrastructure/repositories/endorser/endorser_faker.go index 95f42c69..53f6aa71 100644 --- a/grade/internal/infrastructure/repositories/endorser/endorser_faker.go +++ b/grade/internal/infrastructure/repositories/endorser/endorser_faker.go @@ -2,12 +2,12 @@ package endorser import ( "github.com/emacsway/grade/grade/internal/domain/endorser" - "github.com/emacsway/grade/grade/internal/infrastructure" memberRepo "github.com/emacsway/grade/grade/internal/infrastructure/repositories/member" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" ) func NewEndorserFaker( - session infrastructure.DbSession, + session session.DbSession, opts ...endorser.EndorserFakerOption, ) *endorser.EndorserFaker { opts = append( diff --git a/grade/internal/infrastructure/repositories/endorser/endorser_repository.go b/grade/internal/infrastructure/repositories/endorser/endorser_repository.go index b0b2f98e..0cbfd2b6 100644 --- a/grade/internal/infrastructure/repositories/endorser/endorser_repository.go +++ b/grade/internal/infrastructure/repositories/endorser/endorser_repository.go @@ -5,18 +5,18 @@ import ( "github.com/emacsway/grade/grade/internal/domain/endorser" memberVal "github.com/emacsway/grade/grade/internal/domain/member/values" - "github.com/emacsway/grade/grade/internal/infrastructure" "github.com/emacsway/grade/grade/internal/infrastructure/repositories/endorser/queries" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" ) -func NewEndorserRepository(session infrastructure.DbSession) *EndorserRepository { +func NewEndorserRepository(session session.DbSession) *EndorserRepository { return &EndorserRepository{ session: session, } } type EndorserRepository struct { - session infrastructure.DbSession + session session.DbSession } func (r EndorserRepository) Insert(agg *endorser.Endorser) error { diff --git a/grade/internal/infrastructure/repositories/endorser/endorser_repository_test.go b/grade/internal/infrastructure/repositories/endorser/endorser_repository_test.go index 11882f1b..7fcc23e5 100644 --- a/grade/internal/infrastructure/repositories/endorser/endorser_repository_test.go +++ b/grade/internal/infrastructure/repositories/endorser/endorser_repository_test.go @@ -10,9 +10,9 @@ import ( "github.com/emacsway/grade/grade/internal/domain/member" memberVal "github.com/emacsway/grade/grade/internal/domain/member/values" "github.com/emacsway/grade/grade/internal/domain/tenant" - "github.com/emacsway/grade/grade/internal/infrastructure" memberRepo "github.com/emacsway/grade/grade/internal/infrastructure/repositories/member" tenantRepo "github.com/emacsway/grade/grade/internal/infrastructure/repositories/tenant" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/testutils" ) @@ -78,7 +78,7 @@ func testInsert(t *testing.T, repositoryOption RepositoryOption) { type RepositoryOption struct { Name string Repository *EndorserRepository - Session infrastructure.DbSession + Session session.DbSession TenantId uint MemberId uint } @@ -93,7 +93,7 @@ func newPostgresqlRepositoryOption(t *testing.T) RepositoryOption { var tenantExp tenant.TenantExporter db, err := testutils.NewTestDb() require.NoError(t, err) - session := infrastructure.NewPgxSession(db) + session := session.NewPgxSession(db) tenantFaker := tenantRepo.NewTenantFaker(session) aTenant, err := tenantFaker.Create() require.NoError(t, err) diff --git a/grade/internal/infrastructure/repositories/endorser/queries/endorser_delete_query.go b/grade/internal/infrastructure/repositories/endorser/queries/endorser_delete_query.go index c16cb838..6813bf37 100644 --- a/grade/internal/infrastructure/repositories/endorser/queries/endorser_delete_query.go +++ b/grade/internal/infrastructure/repositories/endorser/queries/endorser_delete_query.go @@ -4,7 +4,7 @@ import ( member "github.com/emacsway/grade/grade/internal/domain/member/values" "github.com/emacsway/grade/grade/internal/domain/seedwork/exporters" tenant "github.com/emacsway/grade/grade/internal/domain/tenant/values" - "github.com/emacsway/grade/grade/internal/infrastructure" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" ) type EndorserDeleteQuery struct { @@ -29,6 +29,6 @@ func (q *EndorserDeleteQuery) SetMemberId(val member.InternalMemberId) { q.params[1] = v } -func (q *EndorserDeleteQuery) Evaluate(s infrastructure.DbSessionExecutor) (infrastructure.Result, error) { +func (q *EndorserDeleteQuery) Evaluate(s session.DbSessionExecutor) (session.Result, error) { return s.Exec(q.sql(), q.params[:]...) } diff --git a/grade/internal/infrastructure/repositories/endorser/queries/endorser_get_query.go b/grade/internal/infrastructure/repositories/endorser/queries/endorser_get_query.go index 0b24af11..091ce1f7 100644 --- a/grade/internal/infrastructure/repositories/endorser/queries/endorser_get_query.go +++ b/grade/internal/infrastructure/repositories/endorser/queries/endorser_get_query.go @@ -3,7 +3,7 @@ package queries import ( "github.com/emacsway/grade/grade/internal/domain/endorser" memberVal "github.com/emacsway/grade/grade/internal/domain/member/values" - "github.com/emacsway/grade/grade/internal/infrastructure" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" ) type EndorserGetQuery struct { @@ -25,7 +25,7 @@ func (q EndorserGetQuery) params() []any { return []any{idExp.TenantId, idExp.MemberId} } -func (q *EndorserGetQuery) Get(s infrastructure.DbSessionSingleQuerier) (*endorser.Endorser, error) { +func (q *EndorserGetQuery) Get(s session.DbSessionSingleQuerier) (*endorser.Endorser, error) { rec := &endorser.EndorserReconstitutor{} err := s.QueryRow(q.sql(), q.params()...).Scan( &rec.Id.TenantId, &rec.Id.MemberId, &rec.Grade, &rec.AvailableEndorsementCount, diff --git a/grade/internal/infrastructure/repositories/endorser/queries/endorser_insert_query.go b/grade/internal/infrastructure/repositories/endorser/queries/endorser_insert_query.go index e03dfd18..4a768008 100644 --- a/grade/internal/infrastructure/repositories/endorser/queries/endorser_insert_query.go +++ b/grade/internal/infrastructure/repositories/endorser/queries/endorser_insert_query.go @@ -8,7 +8,7 @@ import ( memberVal "github.com/emacsway/grade/grade/internal/domain/member/values" "github.com/emacsway/grade/grade/internal/domain/seedwork/exporters" tenantVal "github.com/emacsway/grade/grade/internal/domain/tenant/values" - "github.com/emacsway/grade/grade/internal/infrastructure" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" ) type EndorserInsertQuery struct { @@ -65,6 +65,6 @@ func (q *EndorserInsertQuery) SetVersion(val uint) { q.params[6] = val } -func (q *EndorserInsertQuery) Evaluate(s infrastructure.DbSessionExecutor) (infrastructure.Result, error) { +func (q *EndorserInsertQuery) Evaluate(s session.DbSessionExecutor) (session.Result, error) { return s.Exec(q.sql(), q.params[:]...) } diff --git a/grade/internal/infrastructure/repositories/endorser/queries/endorser_update_query.go b/grade/internal/infrastructure/repositories/endorser/queries/endorser_update_query.go index 91d5ad41..d0e96c68 100644 --- a/grade/internal/infrastructure/repositories/endorser/queries/endorser_update_query.go +++ b/grade/internal/infrastructure/repositories/endorser/queries/endorser_update_query.go @@ -8,7 +8,7 @@ import ( member "github.com/emacsway/grade/grade/internal/domain/member/values" "github.com/emacsway/grade/grade/internal/domain/seedwork/exporters" tenant "github.com/emacsway/grade/grade/internal/domain/tenant/values" - "github.com/emacsway/grade/grade/internal/infrastructure" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" ) type EndorserUpdateQuery struct { @@ -68,7 +68,7 @@ func (q *EndorserUpdateQuery) SetCreatedAt(val time.Time) { q.params[6] = val } -func (q *EndorserUpdateQuery) Evaluate(s infrastructure.DbSessionExecutor) (infrastructure.Result, error) { +func (q *EndorserUpdateQuery) Evaluate(s session.DbSessionExecutor) (session.Result, error) { // TODO: Optimistic lock return s.Exec(q.sql(), q.params[:]...) } diff --git a/grade/internal/infrastructure/repositories/member/member_faker.go b/grade/internal/infrastructure/repositories/member/member_faker.go index 323f4182..05172475 100644 --- a/grade/internal/infrastructure/repositories/member/member_faker.go +++ b/grade/internal/infrastructure/repositories/member/member_faker.go @@ -2,12 +2,12 @@ package member import ( "github.com/emacsway/grade/grade/internal/domain/member" - "github.com/emacsway/grade/grade/internal/infrastructure" tenantRepo "github.com/emacsway/grade/grade/internal/infrastructure/repositories/tenant" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" ) func NewMemberFaker( - session infrastructure.DbSession, + session session.DbSession, opts ...member.MemberFakerOption, ) *member.MemberFaker { opts = append( diff --git a/grade/internal/infrastructure/repositories/member/member_repository.go b/grade/internal/infrastructure/repositories/member/member_repository.go index 8ccd1616..c9f82242 100644 --- a/grade/internal/infrastructure/repositories/member/member_repository.go +++ b/grade/internal/infrastructure/repositories/member/member_repository.go @@ -5,18 +5,18 @@ import ( "github.com/emacsway/grade/grade/internal/domain/member" memberVal "github.com/emacsway/grade/grade/internal/domain/member/values" - "github.com/emacsway/grade/grade/internal/infrastructure" "github.com/emacsway/grade/grade/internal/infrastructure/repositories/member/queries" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" ) -func NewMemberRepository(session infrastructure.DbSession) *MemberRepository { +func NewMemberRepository(session session.DbSession) *MemberRepository { return &MemberRepository{ session: session, } } type MemberRepository struct { - session infrastructure.DbSession + session session.DbSession } func (r *MemberRepository) Insert(agg *member.Member) error { diff --git a/grade/internal/infrastructure/repositories/member/member_repository_test.go b/grade/internal/infrastructure/repositories/member/member_repository_test.go index b8fe1127..358882ee 100644 --- a/grade/internal/infrastructure/repositories/member/member_repository_test.go +++ b/grade/internal/infrastructure/repositories/member/member_repository_test.go @@ -9,8 +9,8 @@ import ( "github.com/emacsway/grade/grade/internal/domain/member" memberVal "github.com/emacsway/grade/grade/internal/domain/member/values" "github.com/emacsway/grade/grade/internal/domain/tenant" - "github.com/emacsway/grade/grade/internal/infrastructure" tenantRepo "github.com/emacsway/grade/grade/internal/infrastructure/repositories/tenant" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/testutils" ) @@ -100,7 +100,7 @@ func testGet(t *testing.T, repositoryOption RepositoryOption) { type RepositoryOption struct { Name string Repository *MemberRepository - Session infrastructure.DbSession + Session session.DbSession TenantId uint } @@ -114,7 +114,7 @@ func newPostgresqlRepositoryOption(t *testing.T) RepositoryOption { var tenantExp tenant.TenantExporter db, err := testutils.NewTestDb() require.NoError(t, err) - session := infrastructure.NewPgxSession(db) + session := session.NewPgxSession(db) tf := tenantRepo.NewTenantFaker(session) aTenant, err := tf.Create() require.NoError(t, err) diff --git a/grade/internal/infrastructure/repositories/member/queries/member_get_query.go b/grade/internal/infrastructure/repositories/member/queries/member_get_query.go index 562d3af5..9aaf2e2b 100644 --- a/grade/internal/infrastructure/repositories/member/queries/member_get_query.go +++ b/grade/internal/infrastructure/repositories/member/queries/member_get_query.go @@ -3,7 +3,7 @@ package queries import ( "github.com/emacsway/grade/grade/internal/domain/member" memberVal "github.com/emacsway/grade/grade/internal/domain/member/values" - "github.com/emacsway/grade/grade/internal/infrastructure" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" ) type MemberGetQuery struct { @@ -24,7 +24,7 @@ func (q MemberGetQuery) params() []any { return []any{idExp.TenantId, idExp.MemberId} } -func (q *MemberGetQuery) Get(s infrastructure.DbSessionSingleQuerier) (*member.Member, error) { +func (q *MemberGetQuery) Get(s session.DbSessionSingleQuerier) (*member.Member, error) { rec := &member.MemberReconstitutor{} err := s.QueryRow(q.sql(), q.params()...).Scan( &rec.Id.TenantId, &rec.Id.MemberId, &rec.Status, &rec.FullName.FirstName, &rec.FullName.LastName, diff --git a/grade/internal/infrastructure/repositories/member/queries/member_insert_query.go b/grade/internal/infrastructure/repositories/member/queries/member_insert_query.go index 736810ca..d630458c 100644 --- a/grade/internal/infrastructure/repositories/member/queries/member_insert_query.go +++ b/grade/internal/infrastructure/repositories/member/queries/member_insert_query.go @@ -6,7 +6,7 @@ import ( memberVal "github.com/emacsway/grade/grade/internal/domain/member/values" "github.com/emacsway/grade/grade/internal/domain/seedwork/exporters" tenant "github.com/emacsway/grade/grade/internal/domain/tenant/values" - "github.com/emacsway/grade/grade/internal/infrastructure" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" ) type MemberInsertQuery struct { @@ -67,7 +67,7 @@ func (q *MemberInsertQuery) SetVersion(val uint) { q.params[5] = val } -func (q *MemberInsertQuery) Evaluate(s infrastructure.DbSessionExecutor) (infrastructure.Result, error) { +func (q *MemberInsertQuery) Evaluate(s session.DbSessionExecutor) (session.Result, error) { result, err := s.Exec(q.sql(), q.params[:]...) if err != nil { return result, err diff --git a/grade/internal/infrastructure/repositories/specialist/queries/assignment/assignment_insert_query.go b/grade/internal/infrastructure/repositories/specialist/queries/assignment/assignment_insert_query.go index 8c0f97d2..e886d975 100644 --- a/grade/internal/infrastructure/repositories/specialist/queries/assignment/assignment_insert_query.go +++ b/grade/internal/infrastructure/repositories/specialist/queries/assignment/assignment_insert_query.go @@ -7,7 +7,7 @@ import ( memberVal "github.com/emacsway/grade/grade/internal/domain/member/values" "github.com/emacsway/grade/grade/internal/domain/seedwork/exporters" gradeVal "github.com/emacsway/grade/grade/internal/domain/specialist/assignment/values" - "github.com/emacsway/grade/grade/internal/infrastructure" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" ) type AssignmentInsertQuery struct { @@ -49,6 +49,6 @@ func (q *AssignmentInsertQuery) SetCreatedAt(val time.Time) { q.params[5] = val } -func (q *AssignmentInsertQuery) Evaluate(s infrastructure.DbSessionExecutor) (infrastructure.Result, error) { +func (q *AssignmentInsertQuery) Evaluate(s session.DbSessionExecutor) (session.Result, error) { return s.Exec(q.sql(), q.params[:]...) } diff --git a/grade/internal/infrastructure/repositories/specialist/queries/endorsement/endorsement_insert_query.go b/grade/internal/infrastructure/repositories/specialist/queries/endorsement/endorsement_insert_query.go index 202ef23f..99dfa279 100644 --- a/grade/internal/infrastructure/repositories/specialist/queries/endorsement/endorsement_insert_query.go +++ b/grade/internal/infrastructure/repositories/specialist/queries/endorsement/endorsement_insert_query.go @@ -7,7 +7,7 @@ import ( "github.com/emacsway/grade/grade/internal/domain/grade" memberVal "github.com/emacsway/grade/grade/internal/domain/member/values" "github.com/emacsway/grade/grade/internal/domain/seedwork/exporters" - "github.com/emacsway/grade/grade/internal/infrastructure" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" ) type EndorsementInsertQuery struct { @@ -66,6 +66,6 @@ func (q *EndorsementInsertQuery) SetCreatedAt(val time.Time) { q.params[8] = val } -func (q *EndorsementInsertQuery) Evaluate(s infrastructure.DbSessionExecutor) (infrastructure.Result, error) { +func (q *EndorsementInsertQuery) Evaluate(s session.DbSessionExecutor) (session.Result, error) { return s.Exec(q.sql(), q.params[:]...) } diff --git a/grade/internal/infrastructure/repositories/tenant/queries/tenant_get_query.go b/grade/internal/infrastructure/repositories/tenant/queries/tenant_get_query.go index 956672b4..8e09e8e1 100644 --- a/grade/internal/infrastructure/repositories/tenant/queries/tenant_get_query.go +++ b/grade/internal/infrastructure/repositories/tenant/queries/tenant_get_query.go @@ -4,7 +4,7 @@ import ( "github.com/emacsway/grade/grade/internal/domain/seedwork/exporters" "github.com/emacsway/grade/grade/internal/domain/tenant" tenantVal "github.com/emacsway/grade/grade/internal/domain/tenant/values" - "github.com/emacsway/grade/grade/internal/infrastructure" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" ) type TenantGetQuery struct { @@ -25,7 +25,7 @@ func (q TenantGetQuery) params() []any { return []any{id} } -func (q *TenantGetQuery) Get(s infrastructure.DbSessionSingleQuerier) (*tenant.Tenant, error) { +func (q *TenantGetQuery) Get(s session.DbSessionSingleQuerier) (*tenant.Tenant, error) { rec := &tenant.TenantReconstitutor{} err := s.QueryRow(q.sql(), q.params()...).Scan( &rec.Id, &rec.Name, &rec.CreatedAt, &rec.Version, diff --git a/grade/internal/infrastructure/repositories/tenant/queries/tenant_insert_query.go b/grade/internal/infrastructure/repositories/tenant/queries/tenant_insert_query.go index a989b2c8..62570da2 100644 --- a/grade/internal/infrastructure/repositories/tenant/queries/tenant_insert_query.go +++ b/grade/internal/infrastructure/repositories/tenant/queries/tenant_insert_query.go @@ -5,7 +5,7 @@ import ( "github.com/emacsway/grade/grade/internal/domain/seedwork/exporters" tenantVal "github.com/emacsway/grade/grade/internal/domain/tenant/values" - "github.com/emacsway/grade/grade/internal/infrastructure" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" ) type TenantInsertQuery struct { @@ -40,7 +40,7 @@ func (q *TenantInsertQuery) SetVersion(val uint) { q.params[2] = val } -func (q *TenantInsertQuery) Evaluate(s infrastructure.DbSessionExecutor) (infrastructure.Result, error) { +func (q *TenantInsertQuery) Evaluate(s session.DbSessionExecutor) (session.Result, error) { result, err := s.Exec(q.sql(), q.params[:]...) if err != nil { return result, err diff --git a/grade/internal/infrastructure/repositories/tenant/tenant_faker.go b/grade/internal/infrastructure/repositories/tenant/tenant_faker.go index 8b0d0c63..41654d29 100644 --- a/grade/internal/infrastructure/repositories/tenant/tenant_faker.go +++ b/grade/internal/infrastructure/repositories/tenant/tenant_faker.go @@ -2,11 +2,11 @@ package tenant import ( "github.com/emacsway/grade/grade/internal/domain/tenant" - "github.com/emacsway/grade/grade/internal/infrastructure" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" ) func NewTenantFaker( - session infrastructure.DbSession, + session session.DbSession, opts ...tenant.TenantFakerOption, ) *tenant.TenantFaker { opts = append( diff --git a/grade/internal/infrastructure/repositories/tenant/tenant_repository.go b/grade/internal/infrastructure/repositories/tenant/tenant_repository.go index 468e736d..454820e1 100644 --- a/grade/internal/infrastructure/repositories/tenant/tenant_repository.go +++ b/grade/internal/infrastructure/repositories/tenant/tenant_repository.go @@ -5,18 +5,18 @@ import ( "github.com/emacsway/grade/grade/internal/domain/tenant" tenantVal "github.com/emacsway/grade/grade/internal/domain/tenant/values" - "github.com/emacsway/grade/grade/internal/infrastructure" "github.com/emacsway/grade/grade/internal/infrastructure/repositories/tenant/queries" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" ) -func NewTenantRepository(session infrastructure.DbSession) *TenantRepository { +func NewTenantRepository(session session.DbSession) *TenantRepository { return &TenantRepository{ session: session, } } type TenantRepository struct { - session infrastructure.DbSession + session session.DbSession } func (r *TenantRepository) Insert(agg *tenant.Tenant) error { diff --git a/grade/internal/infrastructure/repositories/tenant/tenant_repository_test.go b/grade/internal/infrastructure/repositories/tenant/tenant_repository_test.go index e4ea3dc2..79fdc00c 100644 --- a/grade/internal/infrastructure/repositories/tenant/tenant_repository_test.go +++ b/grade/internal/infrastructure/repositories/tenant/tenant_repository_test.go @@ -8,7 +8,7 @@ import ( "github.com/emacsway/grade/grade/internal/domain/tenant" tenantVal "github.com/emacsway/grade/grade/internal/domain/tenant/values" - "github.com/emacsway/grade/grade/internal/infrastructure" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/testutils" ) @@ -90,7 +90,7 @@ func testGet(t *testing.T, repositoryOption RepositoryOption) { type RepositoryOption struct { Name string Repository *TenantRepository - Session infrastructure.DbSession + Session session.DbSession } func createRepositories(t *testing.T) []RepositoryOption { @@ -102,7 +102,7 @@ func createRepositories(t *testing.T) []RepositoryOption { func newPostgresqlRepositoryOption(t *testing.T) RepositoryOption { db, err := testutils.NewTestDb() require.NoError(t, err) - session := infrastructure.NewPgxSession(db) + session := session.NewPgxSession(db) return RepositoryOption{ Name: "PostgreSQL", Repository: NewTenantRepository(session), diff --git a/grade/internal/infrastructure/seedwork/batch/deferred_result.go b/grade/internal/infrastructure/seedwork/batch/deferred_result.go index a0ba0a9c..4f668ba5 100644 --- a/grade/internal/infrastructure/seedwork/batch/deferred_result.go +++ b/grade/internal/infrastructure/seedwork/batch/deferred_result.go @@ -3,13 +3,13 @@ package batch import ( "errors" - "github.com/emacsway/grade/grade/internal/infrastructure" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" ) type DeferredResult struct { lastInsertId int64 rowsAffected int64 - callbacks []infrastructure.DeferredResultCallback + callbacks []session.DeferredResultCallback } func (r *DeferredResult) Resolve(lastInsertId, rowsAffected int64) { @@ -24,7 +24,7 @@ func (r *DeferredResult) SetRowsAffected(v int64) { r.rowsAffected = v } -func (r *DeferredResult) AddCallback(callback infrastructure.DeferredResultCallback) { +func (r *DeferredResult) AddCallback(callback session.DeferredResultCallback) { r.callbacks = append(r.callbacks, callback) } diff --git a/grade/internal/infrastructure/seedwork/batch/multi_query.go b/grade/internal/infrastructure/seedwork/batch/multi_query.go index f65d674a..8a558be7 100644 --- a/grade/internal/infrastructure/seedwork/batch/multi_query.go +++ b/grade/internal/infrastructure/seedwork/batch/multi_query.go @@ -4,8 +4,8 @@ import ( "fmt" "regexp" - "github.com/emacsway/grade/grade/internal/infrastructure" - "github.com/emacsway/grade/grade/internal/infrastructure/seedwork" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/utils" ) var reInsert = regexp.MustCompile(`VALUES\s*(\((?:'(?:[^']|'')*'|[^)])+\))`) @@ -50,7 +50,7 @@ func (q *MultiQueryBase) sql() string { } bulkPlaceholders += q.placeholders } - return seedwork.Rebind(fmt.Sprintf(q.sqlTemplate, bulkPlaceholders)) + return utils.Rebind(fmt.Sprintf(q.sqlTemplate, bulkPlaceholders)) } func (q *MultiQueryBase) flatParams() []any { @@ -61,8 +61,8 @@ func (q *MultiQueryBase) flatParams() []any { return result } -func (q *MultiQueryBase) Exec(query string, args ...any) (infrastructure.DeferredResult, error) { - query = seedwork.RebindReverse(query) +func (q *MultiQueryBase) Exec(query string, args ...any) (session.DeferredResult, error) { + query = utils.RebindReverse(query) q.placeholders = q.re.FindStringSubmatch(query)[1] q.sqlTemplate = q.re.ReplaceAllLiteralString(query, q.replacement) q.params = append(q.params, args) @@ -75,7 +75,7 @@ type MultiQuery struct { MultiQueryBase } -func (q MultiQuery) Evaluate(s infrastructure.DbSession) (infrastructure.Result, error) { +func (q MultiQuery) Evaluate(s session.DbSession) (session.Result, error) { r, err := s.Exec(q.sql(), q.flatParams()...) if err != nil { return nil, err @@ -90,7 +90,7 @@ type AutoincrementMultiInsertQuery struct { MultiQueryBase } -func (q AutoincrementMultiInsertQuery) Evaluate(s infrastructure.DbSession) (infrastructure.Result, error) { +func (q AutoincrementMultiInsertQuery) Evaluate(s session.DbSession) (session.Result, error) { var id int64 rows, err := s.Query(q.sql(), q.flatParams()...) if err != nil { @@ -110,5 +110,5 @@ func (q AutoincrementMultiInsertQuery) Evaluate(s infrastructure.DbSession) (inf if err != nil { return nil, err } - return infrastructure.RowsAffected(len(q.results)), nil + return session.RowsAffected(len(q.results)), nil } diff --git a/grade/internal/infrastructure/seedwork/batch/query_collector.go b/grade/internal/infrastructure/seedwork/batch/query_collector.go index 8989867c..094be594 100644 --- a/grade/internal/infrastructure/seedwork/batch/query_collector.go +++ b/grade/internal/infrastructure/seedwork/batch/query_collector.go @@ -3,7 +3,7 @@ package batch import ( "errors" - "github.com/emacsway/grade/grade/internal/infrastructure" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" ) func NewQueryCollector() *QueryCollector { @@ -14,19 +14,19 @@ func NewQueryCollector() *QueryCollector { } type MultiQuerier interface { - infrastructure.QueryEvaluator - infrastructure.DeferredDbSessionExecutor + session.QueryEvaluator + session.DeferredDbSessionExecutor } type QueryCollector struct { multiQueryMap map[string]MultiQuerier } -func (c *QueryCollector) Exec(query string, args ...any) (infrastructure.DeferredResult, error) { +func (c *QueryCollector) Exec(query string, args ...any) (session.DeferredResult, error) { if _, found := c.multiQueryMap[query]; !found { - if infrastructure.IsAutoincrementInsertQuery(query) { + if session.IsAutoincrementInsertQuery(query) { c.multiQueryMap[query] = NewAutoincrementMultiInsertQuery() - } else if infrastructure.IsInsertQuery(query) { + } else if session.IsInsertQuery(query) { c.multiQueryMap[query] = NewMultiInsertQuery() } } @@ -36,7 +36,7 @@ func (c *QueryCollector) Exec(query string, args ...any) (infrastructure.Deferre return nil, errors.New("unknown SQL command") } -func (c *QueryCollector) Evaluate(s infrastructure.DbSession) (infrastructure.Result, error) { +func (c *QueryCollector) Evaluate(s session.DbSession) (session.Result, error) { var rowsAffected int64 for len(c.multiQueryMap) > 0 { // Resolve N+1 query problem with auto-increment primary key. @@ -54,5 +54,5 @@ func (c *QueryCollector) Evaluate(s infrastructure.DbSession) (infrastructure.Re } } } - return infrastructure.RowsAffected(rowsAffected), nil + return session.RowsAffected(rowsAffected), nil } diff --git a/grade/internal/infrastructure/seedwork/repository/event_get_query.go b/grade/internal/infrastructure/seedwork/repository/event_get_query.go index 0dd5b208..6148adbb 100644 --- a/grade/internal/infrastructure/seedwork/repository/event_get_query.go +++ b/grade/internal/infrastructure/seedwork/repository/event_get_query.go @@ -2,7 +2,7 @@ package repository import ( "github.com/emacsway/grade/grade/internal/domain/seedwork/aggregate" - "github.com/emacsway/grade/grade/internal/infrastructure" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" ) type EventGetQuery struct { @@ -24,7 +24,7 @@ func (q EventGetQuery) sql() string { func (q EventGetQuery) params() []any { return []any{q.StreamId.TenantId(), q.StreamId.StreamType(), q.StreamId.StreamId(), q.SincePosition} } -func (q *EventGetQuery) Stream(s infrastructure.DbSessionQuerier) ([]aggregate.PersistentDomainEvent, error) { +func (q *EventGetQuery) Stream(s session.DbSessionQuerier) ([]aggregate.PersistentDomainEvent, error) { stream := []aggregate.PersistentDomainEvent{} rows, err := s.Query(q.sql(), q.params()...) if err != nil { diff --git a/grade/internal/infrastructure/seedwork/repository/event_insert_query.go b/grade/internal/infrastructure/seedwork/repository/event_insert_query.go index cc0a65e0..d2b00fc5 100644 --- a/grade/internal/infrastructure/seedwork/repository/event_insert_query.go +++ b/grade/internal/infrastructure/seedwork/repository/event_insert_query.go @@ -6,7 +6,7 @@ import ( "github.com/emacsway/grade/grade/internal/domain/seedwork/aggregate" "github.com/emacsway/grade/grade/internal/domain/seedwork/exporters" tenantVal "github.com/emacsway/grade/grade/internal/domain/tenant/values" - "github.com/emacsway/grade/grade/internal/infrastructure" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" ) type EventInsertQuery struct { @@ -49,7 +49,7 @@ func (q *EventInsertQuery) SetEventVersion(val uint8) { q.params[5] = val } -func (q *EventInsertQuery) Evaluate(s infrastructure.DbSession) (infrastructure.Result, error) { +func (q *EventInsertQuery) Evaluate(s session.DbSession) (session.Result, error) { payload, err := json.Marshal(q.payload) if err != nil { return nil, err diff --git a/grade/internal/infrastructure/seedwork/repository/event_store.go b/grade/internal/infrastructure/seedwork/repository/event_store.go index 15a7d61b..8b084d0b 100644 --- a/grade/internal/infrastructure/seedwork/repository/event_store.go +++ b/grade/internal/infrastructure/seedwork/repository/event_store.go @@ -2,12 +2,12 @@ package repository import ( "github.com/emacsway/grade/grade/internal/domain/seedwork/aggregate" - "github.com/emacsway/grade/grade/internal/infrastructure" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" ) -type EventQueryFactory func(aggregate.PersistentDomainEvent) infrastructure.EventSourcedQueryEvaluator +type EventQueryFactory func(aggregate.PersistentDomainEvent) session.EventSourcedQueryEvaluator -func NewEventStore(session infrastructure.DbSession, streamType string, eventQuery EventQueryFactory) *EventStore { +func NewEventStore(session session.DbSession, streamType string, eventQuery EventQueryFactory) *EventStore { return &EventStore{ session: session, streamType: streamType, @@ -16,7 +16,7 @@ func NewEventStore(session infrastructure.DbSession, streamType string, eventQue } type EventStore struct { - session infrastructure.DbSession + session session.DbSession streamType string eventQuery EventQueryFactory } diff --git a/grade/internal/infrastructure/interfaces.go b/grade/internal/infrastructure/seedwork/session/interfaces.go similarity index 98% rename from grade/internal/infrastructure/interfaces.go rename to grade/internal/infrastructure/seedwork/session/interfaces.go index 1300026b..af45f1db 100644 --- a/grade/internal/infrastructure/interfaces.go +++ b/grade/internal/infrastructure/seedwork/session/interfaces.go @@ -1,4 +1,4 @@ -package infrastructure +package session import ( "github.com/emacsway/grade/grade/internal/application" diff --git a/grade/internal/infrastructure/pgx_session.go b/grade/internal/infrastructure/seedwork/session/pgx_session.go similarity index 99% rename from grade/internal/infrastructure/pgx_session.go rename to grade/internal/infrastructure/seedwork/session/pgx_session.go index dccc2dc1..260e2823 100644 --- a/grade/internal/infrastructure/pgx_session.go +++ b/grade/internal/infrastructure/seedwork/session/pgx_session.go @@ -1,4 +1,4 @@ -package infrastructure +package session /* * Some parts of the code based on diff --git a/grade/internal/infrastructure/seedwork/specification/transform_visitor_test.go b/grade/internal/infrastructure/seedwork/specification/transform_visitor_test.go index 7f86ebc0..c5737769 100644 --- a/grade/internal/infrastructure/seedwork/specification/transform_visitor_test.go +++ b/grade/internal/infrastructure/seedwork/specification/transform_visitor_test.go @@ -46,7 +46,7 @@ func (ss SomethingSpecification) Expression() s.Visitable { ) } -func (ss SomethingSpecification) Evaluate( /* session infrastructure.PgxSession */ ) ( +func (ss SomethingSpecification) Evaluate( /* session session.PgxSession */ ) ( sql string, params []driver.Valuer, err error, ) { exp := ss.Expression() diff --git a/grade/internal/infrastructure/seedwork/testutils/db_session.go b/grade/internal/infrastructure/seedwork/testutils/db_session.go index 578d2a92..06c11828 100644 --- a/grade/internal/infrastructure/seedwork/testutils/db_session.go +++ b/grade/internal/infrastructure/seedwork/testutils/db_session.go @@ -5,7 +5,7 @@ import ( "errors" "github.com/emacsway/grade/grade/internal/application" - "github.com/emacsway/grade/grade/internal/infrastructure" + "github.com/emacsway/grade/grade/internal/infrastructure/seedwork/session" ) func NewDbSessionStub(rows *RowsStub) *DbSessionStub { @@ -24,19 +24,19 @@ func (s DbSessionStub) Atomic(callback application.SessionCallback) error { return callback(s) } -func (s *DbSessionStub) Exec(query string, args ...any) (infrastructure.Result, error) { +func (s *DbSessionStub) Exec(query string, args ...any) (session.Result, error) { s.ActualQuery = query s.ActualParams = args return &ResultStub{}, nil } -func (s *DbSessionStub) Query(query string, args ...any) (infrastructure.Rows, error) { +func (s *DbSessionStub) Query(query string, args ...any) (session.Rows, error) { s.ActualQuery = query s.ActualParams = args return s.Rows, nil } -func (s *DbSessionStub) QueryRow(query string, args ...any) infrastructure.Row { +func (s *DbSessionStub) QueryRow(query string, args ...any) session.Row { s.ActualQuery = query s.ActualParams = args return s.Rows @@ -97,7 +97,7 @@ func (r *RowStub) Scan(dest ...any) error { type ResultStub struct { lastInsertId int64 rowsAffected int64 - callbacks []infrastructure.DeferredResultCallback + callbacks []session.DeferredResultCallback } func (r *ResultStub) Resolve(lastInsertId, rowsAffected int64) { @@ -112,7 +112,7 @@ func (r *ResultStub) SetRowsAffected(v int64) { r.rowsAffected = v } -func (r *ResultStub) AddCallback(callback infrastructure.DeferredResultCallback) { +func (r *ResultStub) AddCallback(callback session.DeferredResultCallback) { r.callbacks = append(r.callbacks, callback) } diff --git a/grade/internal/infrastructure/seedwork/utils.go b/grade/internal/infrastructure/seedwork/utils/utils.go similarity index 97% rename from grade/internal/infrastructure/seedwork/utils.go rename to grade/internal/infrastructure/seedwork/utils/utils.go index 2e603870..48c356c3 100644 --- a/grade/internal/infrastructure/seedwork/utils.go +++ b/grade/internal/infrastructure/seedwork/utils/utils.go @@ -1,4 +1,4 @@ -package seedwork +package utils import ( "fmt"