Rehabilitate until localhandler
This commit is contained in:
		
							parent
							
								
									85ede15613
								
							
						
					
					
						commit
						b60d2648ea
					
				@ -8,6 +8,7 @@ import (
 | 
			
		||||
	"os"
 | 
			
		||||
	"path"
 | 
			
		||||
 | 
			
		||||
	testdataloader "github.com/peteole/testdata-loader"
 | 
			
		||||
	"git.defalsify.org/vise.git/logging"
 | 
			
		||||
	"git.grassecon.net/grassrootseconomics/visedriver/config"
 | 
			
		||||
	"git.grassecon.net/grassrootseconomics/visedriver/storage"
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,13 @@
 | 
			
		||||
package handlers
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"context"
 | 
			
		||||
	"fmt"
 | 
			
		||||
 | 
			
		||||
	"git.defalsify.org/vise.git/asm"
 | 
			
		||||
	"git.defalsify.org/vise.git/db"
 | 
			
		||||
	"git.defalsify.org/vise.git/state"
 | 
			
		||||
	"git.defalsify.org/vise.git/cache"
 | 
			
		||||
	"git.defalsify.org/vise.git/engine"
 | 
			
		||||
	"git.defalsify.org/vise.git/persist"
 | 
			
		||||
	"git.defalsify.org/vise.git/resource"
 | 
			
		||||
@ -9,7 +15,12 @@ import (
 | 
			
		||||
 | 
			
		||||
	"git.grassecon.net/grassrootseconomics/visedriver/request"
 | 
			
		||||
	"git.grassecon.net/grassrootseconomics/visedriver/errors"
 | 
			
		||||
	dbstorage "git.grassecon.net/grassrootseconomics/visedriver/storage/db"
 | 
			
		||||
	"git.grassecon.net/grassrootseconomics/visedriver/common"
 | 
			
		||||
	"git.grassecon.net/grassrootseconomics/visedriver/storage"
 | 
			
		||||
	"git.grassecon.net/grassrootseconomics/visedriver/remote"
 | 
			
		||||
	"git.grassecon.net/grassrootseconomics/visedriver/models"
 | 
			
		||||
	"git.grassecon.net/grassrootseconomics/visedriver/utils"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
@ -29,6 +40,47 @@ type Handlers struct {
 | 
			
		||||
	ReplaceSeparatorFunc func(string) string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NewHandlers creates a new instance of the Handlers struct with the provided dependencies.
 | 
			
		||||
func NewHandlers(appFlags *asm.FlagParser, userdataStore db.Db, adminstore *utils.AdminStore, accountService remote.AccountServiceInterface, replaceSeparatorFunc func(string) string) (*Handlers, error) {
 | 
			
		||||
	if userdataStore == nil {
 | 
			
		||||
		return nil, fmt.Errorf("cannot create handler with nil userdata store")
 | 
			
		||||
	}
 | 
			
		||||
	userDb := &common.UserDataStore{
 | 
			
		||||
		Db: userdataStore,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Instantiate the SubPrefixDb with "DATATYPE_USERDATA" prefix
 | 
			
		||||
	prefix := common.ToBytes(db.DATATYPE_USERDATA)
 | 
			
		||||
	prefixDb := dbstorage.NewSubPrefixDb(userdataStore, prefix)
 | 
			
		||||
 | 
			
		||||
	h := &Handlers{
 | 
			
		||||
		userdataStore:        userDb,
 | 
			
		||||
		flagManager:          appFlags,
 | 
			
		||||
		adminstore:           adminstore,
 | 
			
		||||
		accountService:       accountService,
 | 
			
		||||
		prefixDb:             prefixDb,
 | 
			
		||||
		profile:              &models.Profile{Max: 6},
 | 
			
		||||
		ReplaceSeparatorFunc: replaceSeparatorFunc,
 | 
			
		||||
	}
 | 
			
		||||
	return h, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (h *Handlers) Exit() {
 | 
			
		||||
	h.pe = nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (h *Handlers) Init(ctx context.Context, sym string, input []byte) (resource.Result, error) {
 | 
			
		||||
	return resource.Result{}, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// WithPersister sets persister instance to the handlers.
 | 
			
		||||
func (h *Handlers) WithPersister(pe *persist.Persister) *Handlers {
 | 
			
		||||
	if h.pe != nil {
 | 
			
		||||
		panic("persister already set")
 | 
			
		||||
	}
 | 
			
		||||
	h.pe = pe
 | 
			
		||||
	return h
 | 
			
		||||
}
 | 
			
		||||
type BaseSessionHandler struct {
 | 
			
		||||
	cfgTemplate engine.Config
 | 
			
		||||
	rp request.RequestParser
 | 
			
		||||
@ -37,7 +89,7 @@ type BaseSessionHandler struct {
 | 
			
		||||
	provider storage.StorageProvider
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func NewBaseSessionHandler(cfg engine.Config, rs resource.Resource, stateDb db.Db, userdataDb db.Db, rp request.RequestParser, hn *application.Handlers) *BaseSessionHandler {
 | 
			
		||||
func NewBaseSessionHandler(cfg engine.Config, rs resource.Resource, stateDb db.Db, userdataDb db.Db, rp request.RequestParser, hn *Handlers) *BaseSessionHandler {
 | 
			
		||||
	return &BaseSessionHandler{
 | 
			
		||||
		cfgTemplate: cfg,
 | 
			
		||||
		rs:          rs,
 | 
			
		||||
 | 
			
		||||
@ -4,21 +4,21 @@ import (
 | 
			
		||||
	"git.defalsify.org/vise.git/engine"
 | 
			
		||||
	"git.defalsify.org/vise.git/persist"
 | 
			
		||||
	"git.defalsify.org/vise.git/resource"
 | 
			
		||||
	"git.grassecon.net/urdt/ussd/internal/handlers"
 | 
			
		||||
	"git.grassecon.net/grassrootseconomics/visedriver/request"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// MockRequestHandler implements handlers.RequestHandler interface for testing
 | 
			
		||||
// MockRequestHandler implements request.RequestHandler interface for testing
 | 
			
		||||
type MockRequestHandler struct {
 | 
			
		||||
	ProcessFunc          func(handlers.RequestSession) (handlers.RequestSession, error)
 | 
			
		||||
	ProcessFunc          func(request.RequestSession) (request.RequestSession, error)
 | 
			
		||||
	GetConfigFunc        func() engine.Config
 | 
			
		||||
	GetEngineFunc        func(cfg engine.Config, rs resource.Resource, pe *persist.Persister) engine.Engine
 | 
			
		||||
	OutputFunc           func(rs handlers.RequestSession) (handlers.RequestSession, error)
 | 
			
		||||
	ResetFunc            func(rs handlers.RequestSession) (handlers.RequestSession, error)
 | 
			
		||||
	OutputFunc           func(rs request.RequestSession) (request.RequestSession, error)
 | 
			
		||||
	ResetFunc            func(rs request.RequestSession) (request.RequestSession, error)
 | 
			
		||||
	ShutdownFunc         func()
 | 
			
		||||
	GetRequestParserFunc func() handlers.RequestParser
 | 
			
		||||
	GetRequestParserFunc func() request.RequestParser
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (m *MockRequestHandler) Process(rqs handlers.RequestSession) (handlers.RequestSession, error) {
 | 
			
		||||
func (m *MockRequestHandler) Process(rqs request.RequestSession) (request.RequestSession, error) {
 | 
			
		||||
	return m.ProcessFunc(rqs)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -30,11 +30,11 @@ func (m *MockRequestHandler) GetEngine(cfg engine.Config, rs resource.Resource,
 | 
			
		||||
	return m.GetEngineFunc(cfg, rs, pe)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (m *MockRequestHandler) Output(rs handlers.RequestSession) (handlers.RequestSession, error) {
 | 
			
		||||
func (m *MockRequestHandler) Output(rs request.RequestSession) (request.RequestSession, error) {
 | 
			
		||||
	return m.OutputFunc(rs)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (m *MockRequestHandler) Reset(rs handlers.RequestSession) (handlers.RequestSession, error) {
 | 
			
		||||
func (m *MockRequestHandler) Reset(rs request.RequestSession) (request.RequestSession, error) {
 | 
			
		||||
	return m.ResetFunc(rs)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -42,6 +42,6 @@ func (m *MockRequestHandler) Shutdown() {
 | 
			
		||||
	m.ShutdownFunc()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (m *MockRequestHandler) GetRequestParser() handlers.RequestParser {
 | 
			
		||||
func (m *MockRequestHandler) GetRequestParser() request.RequestParser {
 | 
			
		||||
	return m.GetRequestParserFunc()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -1,47 +0,0 @@
 | 
			
		||||
package httpmocks
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"git.defalsify.org/vise.git/engine"
 | 
			
		||||
	"git.defalsify.org/vise.git/persist"
 | 
			
		||||
	"git.defalsify.org/vise.git/resource"
 | 
			
		||||
	"git.grassecon.net/grassrootseconomics/visedriver/request"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// MockRequestHandler implements request.RequestHandler interface for testing
 | 
			
		||||
type MockRequestHandler struct {
 | 
			
		||||
	ProcessFunc          func(request.RequestSession) (request.RequestSession, error)
 | 
			
		||||
	GetConfigFunc        func() engine.Config
 | 
			
		||||
	GetEngineFunc        func(cfg engine.Config, rs resource.Resource, pe *persist.Persister) engine.Engine
 | 
			
		||||
	OutputFunc           func(rs request.RequestSession) (request.RequestSession, error)
 | 
			
		||||
	ResetFunc            func(rs request.RequestSession) (request.RequestSession, error)
 | 
			
		||||
	ShutdownFunc         func()
 | 
			
		||||
	GetRequestParserFunc func() request.RequestParser
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (m *MockRequestHandler) Process(rqs request.RequestSession) (request.RequestSession, error) {
 | 
			
		||||
	return m.ProcessFunc(rqs)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (m *MockRequestHandler) GetConfig() engine.Config {
 | 
			
		||||
	return m.GetConfigFunc()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (m *MockRequestHandler) GetEngine(cfg engine.Config, rs resource.Resource, pe *persist.Persister) engine.Engine {
 | 
			
		||||
	return m.GetEngineFunc(cfg, rs, pe)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (m *MockRequestHandler) Output(rs request.RequestSession) (request.RequestSession, error) {
 | 
			
		||||
	return m.OutputFunc(rs)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (m *MockRequestHandler) Reset(rs request.RequestSession) (request.RequestSession, error) {
 | 
			
		||||
	return m.ResetFunc(rs)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (m *MockRequestHandler) Shutdown() {
 | 
			
		||||
	m.ShutdownFunc()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (m *MockRequestHandler) GetRequestParser() request.RequestParser {
 | 
			
		||||
	return m.GetRequestParserFunc()
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user