CasaOS/service/service.go

107 lines
2.2 KiB
Go
Raw Normal View History

/*
* @Author: LinkLeong link@icewhale.com
* @Date: 2022-07-12 09:48:56
* @LastEditors: LinkLeong
* @LastEditTime: 2022-09-02 22:10:05
* @FilePath: /CasaOS/service/service.go
* @Description:
* @Website: https://www.casaos.io
* Copyright (c) 2022 by icewhale, All Rights Reserved.
*/
2021-09-26 02:35:02 +00:00
package service
import (
"github.com/IceWhaleTech/CasaOS-Common/external"
2022-02-17 10:43:25 +00:00
"github.com/gorilla/websocket"
"github.com/patrickmn/go-cache"
2021-09-26 02:35:02 +00:00
"gorm.io/gorm"
)
var Cache *cache.Cache
2021-09-26 02:35:02 +00:00
var MyService Repository
2022-02-17 10:43:25 +00:00
var WebSocketConns []*websocket.Conn
2022-05-05 05:46:55 +00:00
var NewVersionApp map[string]string
2022-02-17 10:43:25 +00:00
var SocketRun bool
2021-09-26 02:35:02 +00:00
type Repository interface {
App() AppService
//User() UserService
2021-09-26 02:35:02 +00:00
Docker() DockerService
Casa() CasaService
2021-09-26 02:35:02 +00:00
Notify() NotifyServer
Rely() RelyService
System() SystemService
Shares() SharesService
Connections() ConnectionsService
Gateway() external.ManagementService
2021-09-26 02:35:02 +00:00
}
func NewService(db *gorm.DB, RuntimePath string) Repository {
gatewayManagement, err := external.NewManagementService(RuntimePath)
if err != nil && len(RuntimePath) > 0 {
panic(err)
}
2021-09-26 02:35:02 +00:00
return &store{
gateway: gatewayManagement,
app: NewAppService(db),
docker: NewDockerService(),
casa: NewCasaService(),
notify: NewNotifyService(db),
rely: NewRelyService(db),
system: NewSystemService(),
shares: NewSharesService(db),
connections: NewConnectionsService(db),
2021-09-26 02:35:02 +00:00
}
}
type store struct {
db *gorm.DB
app AppService
docker DockerService
casa CasaService
notify NotifyServer
rely RelyService
system SystemService
shares SharesService
connections ConnectionsService
gateway external.ManagementService
}
func (c *store) Gateway() external.ManagementService {
return c.gateway
}
func (s *store) Connections() ConnectionsService {
return s.connections
}
func (s *store) Shares() SharesService {
return s.shares
2021-09-26 02:35:02 +00:00
}
func (c *store) Rely() RelyService {
return c.rely
}
2021-09-26 02:35:02 +00:00
func (c *store) System() SystemService {
return c.system
}
func (c *store) Notify() NotifyServer {
return c.notify
}
func (c *store) App() AppService {
return c.app
}
func (c *store) Docker() DockerService {
return c.docker
}
func (c *store) Casa() CasaService {
return c.casa
2021-09-26 02:35:02 +00:00
}