lash/custom-engin #20
| @ -133,6 +133,7 @@ func main() { | ||||
| 
 | ||||
| 	rp := &at.ATRequestParser{} | ||||
| 	bsh := request.NewBaseRequestHandler(cfg, rs, stateStore, userdataStore, rp, hl) | ||||
| 	bsh = bsh.WithEngineFunc(lhs.GetEngine) | ||||
| 	sh := at.NewATRequestHandler(bsh) | ||||
| 
 | ||||
| 	mux := http.NewServeMux() | ||||
|  | ||||
| @ -145,6 +145,8 @@ func main() { | ||||
| 		sessionId: sessionId, | ||||
| 	} | ||||
| 	sh := request.NewBaseRequestHandler(cfg, rs, stateStore, userdataStore, rp, hl) | ||||
| 	sh = sh.WithEngineFunc(lhs.GetEngine) | ||||
| 
 | ||||
| 	cfg.SessionId = sessionId | ||||
| 	rqs := request.RequestSession{ | ||||
| 		Ctx:    ctx, | ||||
|  | ||||
| @ -133,6 +133,7 @@ func main() { | ||||
| 
 | ||||
| 	rp := &httprequest.DefaultRequestParser{} | ||||
| 	bsh := request.NewBaseRequestHandler(cfg, rs, stateStore, userdataStore, rp, hl) | ||||
| 	bsh = bsh.WithEngineFunc(lhs.GetEngine) | ||||
| 	sh := httprequest.NewHTTPRequestHandler(bsh) | ||||
| 	s := &http.Server{ | ||||
| 		Addr:    fmt.Sprintf("%s:%s", host, strconv.Itoa(int(port))), | ||||
|  | ||||
							
								
								
									
										15
									
								
								cmd/main.go
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								cmd/main.go
									
									
									
									
									
								
							| @ -16,7 +16,6 @@ import ( | ||||
| 	"git.grassecon.net/grassrootseconomics/sarafu-vise/args" | ||||
| 	"git.grassecon.net/grassrootseconomics/sarafu-vise/config" | ||||
| 	"git.grassecon.net/grassrootseconomics/sarafu-vise/handlers" | ||||
| 	"git.grassecon.net/grassrootseconomics/sarafu-vise/services" | ||||
| 	"git.grassecon.net/grassrootseconomics/visedriver/storage" | ||||
| ) | ||||
| 
 | ||||
| @ -79,6 +78,7 @@ func main() { | ||||
| 		OutputSize:    uint32(size), | ||||
| 		FlagCount:     uint32(128), | ||||
| 		MenuSeparator: menuSeparator, | ||||
| 		EngineDebug: engineDebug, | ||||
| 	} | ||||
| 
 | ||||
| 	menuStorageService := storage.NewMenuStorageService(conns) | ||||
| @ -123,18 +123,7 @@ func main() { | ||||
| 		os.Exit(1) | ||||
| 	} | ||||
| 
 | ||||
| 	accountService := services.New(ctx, menuStorageService) | ||||
| 	hl, err := lhs.GetHandler(accountService) | ||||
| 	if err != nil { | ||||
| 		fmt.Fprintf(os.Stderr, "get accounts service handler: %v\n", err) | ||||
| 		os.Exit(1) | ||||
| 	} | ||||
| 
 | ||||
| 	en := lhs.GetEngine() | ||||
| 	en = en.WithFirst(hl.Init) | ||||
| 	if engineDebug { | ||||
| 		en = en.WithDebug(nil) | ||||
| 	} | ||||
| 	en := lhs.GetEngine(cfg, rs, pe) | ||||
| 
 | ||||
| 	cint := make(chan os.Signal) | ||||
| 	cterm := make(chan os.Signal) | ||||
|  | ||||
							
								
								
									
										4
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								go.mod
									
									
									
									
									
								
							| @ -3,10 +3,10 @@ module git.grassecon.net/grassrootseconomics/sarafu-vise | ||||
| go 1.23.4 | ||||
| 
 | ||||
| require ( | ||||
| 	git.defalsify.org/vise.git v0.2.3-0.20250120121301-10739fb4a8c9 | ||||
| 	git.defalsify.org/vise.git v0.2.3-0.20250204132233-2bffe532f21e | ||||
| 	git.grassecon.net/grassrootseconomics/common v0.0.0-20250121134736-ba8cbbccea7d | ||||
| 	git.grassecon.net/grassrootseconomics/sarafu-api v0.0.0-20250123142805-2181388f5bf1 | ||||
| 	git.grassecon.net/grassrootseconomics/visedriver v0.8.0-beta.10.0.20250124100946-03d19283f6fa | ||||
| 	git.grassecon.net/grassrootseconomics/visedriver v0.9.0-beta.1.0.20250204132347-1eb0b1555244 | ||||
| 	git.grassecon.net/grassrootseconomics/visedriver-africastalking v0.0.0-20250129070628-5a539172c694 | ||||
| 	github.com/alecthomas/assert/v2 v2.2.2 | ||||
| 	github.com/gofrs/uuid v4.4.0+incompatible | ||||
|  | ||||
							
								
								
									
										12
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								go.sum
									
									
									
									
									
								
							| @ -1,15 +1,11 @@ | ||||
| git.defalsify.org/vise.git v0.2.3-0.20250120121301-10739fb4a8c9 h1:sPcqXQcywxA8W3W+9qQncLPmsrgqTIlec7vmD4/7vyA= | ||||
| git.defalsify.org/vise.git v0.2.3-0.20250120121301-10739fb4a8c9/go.mod h1:jyBMe1qTYUz3mmuoC9JQ/TvFeW0vTanCUcPu3H8p4Ck= | ||||
| git.defalsify.org/vise.git v0.2.3-0.20250204132233-2bffe532f21e h1:gtB9OdX6x5gQRM3W824dEurXuuf/YPInqgtv2KAp5Zo= | ||||
| git.defalsify.org/vise.git v0.2.3-0.20250204132233-2bffe532f21e/go.mod h1:jyBMe1qTYUz3mmuoC9JQ/TvFeW0vTanCUcPu3H8p4Ck= | ||||
| git.grassecon.net/grassrootseconomics/common v0.0.0-20250121134736-ba8cbbccea7d h1:5mzLas+jxTUtusOKx4XvU+n2QvrV/mH17MnJRy46siQ= | ||||
| git.grassecon.net/grassrootseconomics/common v0.0.0-20250121134736-ba8cbbccea7d/go.mod h1:wgQJZGIS6QuNLHqDhcsvehsbn5PvgV7aziRebMnJi60= | ||||
| git.grassecon.net/grassrootseconomics/sarafu-api v0.0.0-20250123142805-2181388f5bf1 h1:BJHfokTHzrw9QjQ+4s2HmSER0iBPuE7byW5oQC2zLIQ= | ||||
| git.grassecon.net/grassrootseconomics/sarafu-api v0.0.0-20250123142805-2181388f5bf1/go.mod h1:gOn89ipaDcDvmQXRMQYKUqcw/sJcwVOPVt2eC6Geip8= | ||||
| git.grassecon.net/grassrootseconomics/visedriver v0.8.0-beta.10.0.20250124100946-03d19283f6fa h1:yQLKwby3eD/zNjNw/INU5lGiLuWPEHdsgASwMA4UptE= | ||||
| git.grassecon.net/grassrootseconomics/visedriver v0.8.0-beta.10.0.20250124100946-03d19283f6fa/go.mod h1:pjKp9L/ZsWW3kMB0UoIl1yv9TBIuU33mn9Aghxp7vGk= | ||||
| git.grassecon.net/grassrootseconomics/visedriver-africastalking v0.0.0-20250121135340-ca97e23e8c84 h1:VoBmqsjlRdz+IPbtKsAkc1IrMepjR+QlesZT31Jokrk= | ||||
| git.grassecon.net/grassrootseconomics/visedriver-africastalking v0.0.0-20250121135340-ca97e23e8c84/go.mod h1:DpibtYpnT3nG4Kn556hRAkdu4+CtiI/6MbnQHal51mQ= | ||||
| git.grassecon.net/grassrootseconomics/visedriver-africastalking v0.0.0-20250121153115-bfb16bd5a57a h1:jyS1Q8ktEGnH8R5ne/1GN7SyuDPtEGTrGtC8Px3fVJc= | ||||
| git.grassecon.net/grassrootseconomics/visedriver-africastalking v0.0.0-20250121153115-bfb16bd5a57a/go.mod h1:DpibtYpnT3nG4Kn556hRAkdu4+CtiI/6MbnQHal51mQ= | ||||
| git.grassecon.net/grassrootseconomics/visedriver v0.9.0-beta.1.0.20250204132347-1eb0b1555244 h1:BXotWSKg04U97sf/xeWJuUTSVgKk2aEK+5BtBrnafXQ= | ||||
| git.grassecon.net/grassrootseconomics/visedriver v0.9.0-beta.1.0.20250204132347-1eb0b1555244/go.mod h1:6B6ByxXOiRY0NR7K02Bf3fEu7z+2c/6q8PFVNjC5G8w= | ||||
| git.grassecon.net/grassrootseconomics/visedriver-africastalking v0.0.0-20250129070628-5a539172c694 h1:DjJlBSz0S13acft5XZDWk7ZYnzElym0xLMYEVgyNJ+E= | ||||
| git.grassecon.net/grassrootseconomics/visedriver-africastalking v0.0.0-20250129070628-5a539172c694/go.mod h1:DpibtYpnT3nG4Kn556hRAkdu4+CtiI/6MbnQHal51mQ= | ||||
| github.com/alecthomas/assert/v2 v2.2.2 h1:Z/iVC0xZfWTaFNE6bA3z07T86hd45Xe2eLt6WVy2bbk= | ||||
|  | ||||
| @ -24,6 +24,7 @@ type LocalHandlerService struct { | ||||
| 	UserdataStore *db.Db | ||||
| 	Cfg           engine.Config | ||||
| 	Rs            resource.Resource | ||||
| 	first	resource.EntryFunc | ||||
| } | ||||
| 
 | ||||
| func NewLocalHandlerService(ctx context.Context, fp string, debug bool, dbResource *resource.DbResource, cfg engine.Config, rs resource.Resource) (*LocalHandlerService, error) { | ||||
| @ -118,13 +119,19 @@ func (ls *LocalHandlerService) GetHandler(accountService remote.AccountService) | ||||
| 	ls.DbRs.AddLocalFunc("update_all_profile_items", appHandlers.UpdateAllProfileItems) | ||||
| 	ls.DbRs.AddLocalFunc("set_back", appHandlers.SetBack) | ||||
| 	ls.DbRs.AddLocalFunc("show_blocked_account", appHandlers.ShowBlockedAccount) | ||||
| 	ls.first = appHandlers.Init | ||||
| 
 | ||||
| 	return appHandlers, nil | ||||
| } | ||||
| 
 | ||||
| // TODO: enable setting of sessionId on engine init time
 | ||||
| func (ls *LocalHandlerService) GetEngine() *engine.DefaultEngine { | ||||
| 	en := engine.NewEngine(ls.Cfg, ls.Rs) | ||||
| 	en = en.WithPersister(ls.Pe) | ||||
| func (ls *LocalHandlerService) GetEngine(cfg engine.Config, rs resource.Resource, pr *persist.Persister) engine.Engine { | ||||
| 	en := engine.NewEngine(cfg, rs) | ||||
| 	if ls.first != nil { | ||||
| 		en = en.WithFirst(ls.first) | ||||
| 	} | ||||
| 	en = en.WithPersister(pr) | ||||
| 	if cfg.EngineDebug { | ||||
| 		en = en.WithDebug(nil) | ||||
| 	} | ||||
| 	return en | ||||
| } | ||||
|  | ||||
							
								
								
									
										16
									
								
								ssh/ssh.go
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								ssh/ssh.go
									
									
									
									
									
								
							| @ -17,7 +17,7 @@ import ( | ||||
| 	"git.defalsify.org/vise.git/resource" | ||||
| 	"git.defalsify.org/vise.git/state" | ||||
| 	"git.grassecon.net/grassrootseconomics/sarafu-vise/handlers" | ||||
| 	"git.grassecon.net/grassrootseconomics/sarafu-vise/services" | ||||
| //	"git.grassecon.net/grassrootseconomics/sarafu-vise/services"
 | ||||
| 	"git.grassecon.net/grassrootseconomics/visedriver/storage" | ||||
| ) | ||||
| 
 | ||||
| @ -177,20 +177,8 @@ func (s *SshRunner) GetEngine(sessionId string) (engine.Engine, func(), error) { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 
 | ||||
| 	// TODO: clear up why pointer here and by-value other cmds
 | ||||
| 	accountService := services.New(ctx, menuStorageService) | ||||
| 
 | ||||
| 	hl, err := lhs.GetHandler(accountService) | ||||
| 	if err != nil { | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 
 | ||||
| 	en := lhs.GetEngine() | ||||
| 	en = en.WithFirst(hl.Init) | ||||
| 	if s.Debug { | ||||
| 		en = en.WithDebug(nil) | ||||
| 	} | ||||
| 	// TODO: this is getting very hacky!
 | ||||
| 	en := lhs.GetEngine(lhs.Cfg, rs, pe) | ||||
| 	closer := func() { | ||||
| 		err := menuStorageService.Close(ctx) | ||||
| 		if err != nil { | ||||
|  | ||||
| @ -137,14 +137,14 @@ func TestEngine(sessionId string) (engine.Engine, func(), chan bool) { | ||||
| 		panic("Unknown account service type") | ||||
| 	} | ||||
| 
 | ||||
| 	hl, err := lhs.GetHandler(testtag.AccountService) | ||||
| 	// TODO: triggers withfirst assignment
 | ||||
| 	_, err = lhs.GetHandler(testtag.AccountService) | ||||
| 	if err != nil { | ||||
| 		fmt.Fprintf(os.Stderr, err.Error()) | ||||
| 		os.Exit(1) | ||||
| 	} | ||||
| 
 | ||||
| 	en := lhs.GetEngine() | ||||
| 	en = en.WithFirst(hl.Init) | ||||
| 	en := lhs.GetEngine(lhs.Cfg, rs, pe) | ||||
| 	cleanFn := func() { | ||||
| 		err := en.Finish(ctx) | ||||
| 		if err != nil { | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user