40 lines
1.1 KiB
Go
40 lines
1.1 KiB
Go
package api
|
|
|
|
import (
|
|
"git.sendico.io/tech/sxchnge/product/app/urls"
|
|
"git.sendico.io/tech/sxchnge/product/auth/config"
|
|
"git.sendico.io/tech/sxchnge/product/auth/flow"
|
|
"git.sendico.io/tech/sxchnge/product/auth/storage"
|
|
"git.sendico.io/tech/sxchnge/product/customers"
|
|
"git.sendico.io/tech/sxchnge/product/identity"
|
|
"git.sendico.io/tech/sxchnge/product/twofactor"
|
|
"git.sendico.io/tech/sxchnge/shared/logging"
|
|
"github.com/go-chi/chi/v5"
|
|
)
|
|
|
|
// Dependencies are initialized once and shared by installed transports.
|
|
type Dependencies struct {
|
|
Stores *storage.Stores
|
|
Customers accountservice.AccountService
|
|
Auth *flow.Service
|
|
Factors *twofactor.Service
|
|
Identity *identity.Service
|
|
Token middleware.TokenConfig
|
|
Signature middleware.Signature
|
|
LoginLimits middleware.LoginRateLimits
|
|
}
|
|
|
|
// Scope belongs to one installation. Router paths are relative to Mount.
|
|
type Scope struct {
|
|
Router chi.Router
|
|
Mount string
|
|
URLs domainprovider.DomainProvider
|
|
Logger mlogger.Logger
|
|
}
|
|
type Installer func(Scope, *Dependencies) error
|
|
|
|
type Mount struct {
|
|
Version string `yaml:"version"`
|
|
Path string `yaml:"path"`
|
|
}
|