Olá, Carlos! Tudo bem?
No Go, é possível organizar seu código em subdiretórios, mas é importante entender como o Go trata os pacotes. Cada diretório deve ser considerado um pacote separado, mesmo que esteja dentro de outro pacote. Isso significa que, se você criar uma subpasta em um pacote, essa subpasta será tratada como um pacote diferente.
Para acessar a variável db
que você expôs no handler.go
a partir do showPayees.go
dentro da subpasta, você precisa garantir que a variável db
seja exportada (começando com uma letra maiúscula) e importá-la corretamente no arquivo da subpasta.
Aqui está um exemplo de como você pode fazer isso:
No handler.go
, exporte a variável db
:
package handler
var (
Logger *config.Logger
DB *gorm.DB // Use maiúscula para exportar
)
func InitializeHandler() {
Logger = config.GetLogger("handler")
DB = config.GetPostgres()
}
No showPayees.go
, importe o pacote pai e use a variável exportada:
package payee
import (
"github.com/seuprojeto/handler" // ajuste o caminho conforme necessário
"github.com/gin-gonic/gin"
)
func ShowPayeesHandler(c *gin.Context) {
// Agora você pode acessar handler.DB
if err := handler.DB.Find(&payees).Error; err != nil {
// Lide com o erro
}
}
Certifique-se de ajustar o caminho do pacote conforme a estrutura do seu projeto. Com isso, você deve conseguir acessar a variável DB
a partir do showPayees.go
.
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.