app/dashboard/app.go (47 lines of code) (raw):
package dashboard
import (
"context"
"ddm-admin-console/service/openshift"
"ddm-admin-console/service/permissions"
"net/http"
"ddm-admin-console/config"
"ddm-admin-console/router"
"ddm-admin-console/service/codebase"
edpComponent "ddm-admin-console/service/edp_component"
"ddm-admin-console/service/k8s"
"golang.org/x/oauth2"
"go.uber.org/zap"
)
type Logger interface {
Error(msg string, fields ...zap.Field)
Info(msg string, fields ...zap.Field)
}
type OAuth interface {
GetTokenClient(ctx context.Context, code string) (token *oauth2.Token, oauthClient *http.Client, err error)
AuthCodeURL() string
}
type App struct {
router router.Interface
logger Logger
edpComponentService edpComponent.ServiceInterface
oauth OAuth
k8sService k8s.ServiceInterface
codebaseService codebase.ServiceInterface
openShiftService openshift.ServiceInterface
permService permissions.ServiceInterface
clusterCodebaseName string
}
func Make(router router.Interface, oauth OAuth, services *config.Services, clusterCodebaseName string) (*App, error) {
app := App{
router: router,
edpComponentService: services.EDPComponent,
oauth: oauth,
k8sService: services.K8S,
openShiftService: services.OpenShift,
clusterCodebaseName: clusterCodebaseName,
codebaseService: services.Codebase,
permService: services.PermService,
}
app.createRoutes()
return &app, nil
}