aboutsummaryrefslogtreecommitdiff
path: root/service/service.go
diff options
context:
space:
mode:
authorr <r@freesoftwareextremist.com>2020-04-19 08:18:36 +0000
committerr <r@freesoftwareextremist.com>2020-04-19 08:18:36 +0000
commit55ed6a480ea049f789d778e4bae06ffa4d790ee1 (patch)
tree0c9e32e565c9a5bed27b018579f06573846ca511 /service/service.go
parent5abbadfa622e58a4951cf0b2f96fbf8094641be8 (diff)
downloadbloat-55ed6a480ea049f789d778e4bae06ffa4d790ee1.tar.gz
bloat-55ed6a480ea049f789d778e4bae06ffa4d790ee1.zip
Add single instance mode
Diffstat (limited to 'service/service.go')
-rw-r--r--service/service.go44
1 files changed, 28 insertions, 16 deletions
diff --git a/service/service.go b/service/service.go
index be83bd0..02c55cb 100644
--- a/service/service.go
+++ b/service/service.go
@@ -35,6 +35,7 @@ type Service interface {
ServeSearchPage(ctx context.Context, c *model.Client, q string, qType string, offset int) (err error)
ServeUserSearchPage(ctx context.Context, c *model.Client, id string, q string, offset int) (err error)
ServeSettingsPage(ctx context.Context, c *model.Client) (err error)
+ SingleInstance(ctx context.Context) (instance string, ok bool)
NewSession(ctx context.Context, instance string) (redirectUrl string, sessionID string, err error)
Signin(ctx context.Context, c *model.Client, sessionID string,
code string) (token string, userID string, err error)
@@ -62,14 +63,15 @@ type Service interface {
}
type service struct {
- clientName string
- clientScope string
- clientWebsite string
- customCSS string
- postFormats []model.PostFormat
- renderer renderer.Renderer
- sessionRepo model.SessionRepo
- appRepo model.AppRepo
+ clientName string
+ clientScope string
+ clientWebsite string
+ customCSS string
+ postFormats []model.PostFormat
+ renderer renderer.Renderer
+ sessionRepo model.SessionRepo
+ appRepo model.AppRepo
+ singleInstance string
}
func NewService(clientName string,
@@ -80,16 +82,18 @@ func NewService(clientName string,
renderer renderer.Renderer,
sessionRepo model.SessionRepo,
appRepo model.AppRepo,
+ singleInstance string,
) Service {
return &service{
- clientName: clientName,
- clientScope: clientScope,
- clientWebsite: clientWebsite,
- customCSS: customCSS,
- postFormats: postFormats,
- renderer: renderer,
- sessionRepo: sessionRepo,
- appRepo: appRepo,
+ clientName: clientName,
+ clientScope: clientScope,
+ clientWebsite: clientWebsite,
+ customCSS: customCSS,
+ postFormats: postFormats,
+ renderer: renderer,
+ sessionRepo: sessionRepo,
+ appRepo: appRepo,
+ singleInstance: singleInstance,
}
}
@@ -622,6 +626,14 @@ func (svc *service) ServeSettingsPage(ctx context.Context, c *model.Client) (err
return svc.renderer.Render(rCtx, c.Writer, renderer.SettingsPage, data)
}
+func (svc *service) SingleInstance(ctx context.Context) (instance string, ok bool) {
+ if len(svc.singleInstance) > 0 {
+ instance = svc.singleInstance
+ ok = true
+ }
+ return
+}
+
func (svc *service) NewSession(ctx context.Context, instance string) (
redirectUrl string, sessionID string, err error) {