github.com/TBD54566975/ftl@v0.219.0/internal/modulecontext/from_proto.go (about)

     1  package modulecontext
     2  
     3  import (
     4  	"fmt"
     5  
     6  	ftlv1 "github.com/TBD54566975/ftl/backend/protos/xyz/block/ftl/v1"
     7  )
     8  
     9  func FromProto(response *ftlv1.ModuleContextResponse) (ModuleContext, error) {
    10  	databases := map[string]Database{}
    11  	for name, entry := range response.Databases {
    12  		db, err := NewDatabase(DBType(entry.Type), entry.Dsn)
    13  		if err != nil {
    14  			return ModuleContext{}, fmt.Errorf("could not create database %q with DSN %q: %w", name, entry.Dsn, err)
    15  		}
    16  		databases[entry.Name] = db
    17  	}
    18  	return NewBuilder(response.Module).AddConfigs(response.Configs).AddSecrets(response.Secrets).AddDatabases(databases).Build(), nil
    19  }