reposetory.go 1.4 KB
package factory

import (
	"github.com/linmadan/egglib-go/core/application"
	"github.com/linmadan/egglib-go/transaction/pg"
	"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain"
	pgDB "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/infrastructure/pg"
	"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/infrastructure/repository"
)

func CreateTransactionContext(options map[string]interface{}) (application.TransactionContext, error) {
	return pg.NewPGTransactionContext(pgDB.DB), nil
}

func CreateCompanyRepository(options map[string]interface{}) domain.CompanyRepository {
	var transactionContext *pg.TransactionContext
	if value, ok := options["transactionContext"]; ok {
		transactionContext = value.(*pg.TransactionContext)
	}
	return repository.NewCompanyRepository(transactionContext)
}

func CreateUserRepository(options map[string]interface{}) domain.UserRepository {
	var transactionContext *pg.TransactionContext
	if value, ok := options["transactionContext"]; ok {
		transactionContext = value.(*pg.TransactionContext)
	}
	return repository.NewUserRepository(transactionContext)
}

func CreateDepartmentRepository(options map[string]interface{}) domain.DepartmentRepository {
	var transactionContext *pg.TransactionContext
	if value, ok := options["transactionContext"]; ok {
		transactionContext = value.(*pg.TransactionContext)
	}
	return repository.NewDepartmentRepository(transactionContext)
}