github.com/kyleu/dbaudit@v0.0.2-0.20240321155047-ff2f2c940496/app/services.go (about)

     1  package app // import github.com/kyleu/dbaudit
     2  
     3  import (
     4  	"context"
     5  
     6  	"github.com/pkg/errors"
     7  
     8  	"github.com/kyleu/dbaudit/app/lib/database/migrate"
     9  	"github.com/kyleu/dbaudit/app/parse"
    10  	"github.com/kyleu/dbaudit/app/statement"
    11  	"github.com/kyleu/dbaudit/app/util"
    12  	"github.com/kyleu/dbaudit/queries/migrations"
    13  )
    14  
    15  type Services struct {
    16  	CoreServices
    17  	GeneratedServices
    18  
    19  	Parse *parse.Service
    20  }
    21  
    22  func NewServices(ctx context.Context, st *State, logger util.Logger) (*Services, error) {
    23  	migrations.LoadMigrations(st.Debug)
    24  	err := migrate.Migrate(ctx, st.DB, logger)
    25  	if err != nil {
    26  		return nil, errors.Wrap(err, "unable to run database migrations")
    27  	}
    28  	stmtSvc := statement.NewService(st.DB)
    29  	return &Services{
    30  		CoreServices:      initCoreServices(ctx, st, logger),
    31  		GeneratedServices: initGeneratedServices(ctx, st, logger),
    32  
    33  		Parse: parse.NewService(st.DB, stmtSvc),
    34  	}, nil
    35  }
    36  
    37  func (s *Services) Close(_ context.Context, _ util.Logger) error {
    38  	return nil
    39  }