repository.go 2.8 KB
package factory

import (
	"github.com/linmadan/egglib-go/transaction/pg"
	"github.com/tiptok/godevp/pkg/domain"
	"github.com/tiptok/godevp/pkg/domain/role"
	"github.com/tiptok/godevp/pkg/domain/users"
	"github.com/tiptok/godevp/pkg/infrastructure/repository"
)

func CreateUsersRepository(options map[string]interface{}) (users.UsersRepository, error) {
	var transactionContext *pg.TransactionContext
	if value, ok := options["transactionContext"]; ok {
		transactionContext = value.(*pg.TransactionContext)
	}
	return repository.NewUsersRepository(transactionContext)
}

func CreateRoleRepository(options map[string]interface{}) (role.RoleRepository, error) {
	var transactionContext *pg.TransactionContext
	if value, ok := options["transactionContext"]; ok {
		transactionContext = value.(*pg.TransactionContext)
	}
	return repository.NewRoleRepository(transactionContext)
}

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

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

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

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

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

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