Files
NextZen-UserService/service/service.go
T

74 lines
1.7 KiB
Go
Raw Normal View History

2022-08-04 19:14:53 -04:00
package service
import (
"github.com/IceWhaleTech/CasaOS-Common/external"
2024-02-04 08:15:37 +00:00
"github.com/IceWhaleTech/CasaOS-UserService/codegen/message_bus"
"github.com/IceWhaleTech/CasaOS-UserService/pkg/config"
2022-08-04 19:14:53 -04:00
"gorm.io/gorm"
)
var MyService Repository
type Repository interface {
Gateway() external.ManagementService
2022-08-04 19:14:53 -04:00
User() UserService
2024-02-04 08:15:37 +00:00
MessageBus() *message_bus.ClientWithResponses
2022-11-30 12:16:11 +08:00
Event() EventService
2024-07-03 17:58:27 +07:00
OMV() OMVService
2022-08-04 19:14:53 -04:00
}
func NewService(db *gorm.DB, RuntimePath string) Repository {
gatewayManagement, err := external.NewManagementService(RuntimePath)
2022-08-04 19:14:53 -04:00
if err != nil {
panic(err)
}
return &store{
gateway: gatewayManagement,
user: NewUserService(db),
2022-11-30 12:16:11 +08:00
event: NewEventService(db),
2024-07-03 17:58:27 +07:00
omv: NewOMVService(),
2022-08-04 19:14:53 -04:00
}
}
type store struct {
gateway external.ManagementService
2022-08-04 19:14:53 -04:00
user UserService
2022-11-30 12:16:11 +08:00
event EventService
2024-07-03 17:58:27 +07:00
omv OMVService
2022-08-04 19:14:53 -04:00
}
2024-07-03 17:58:27 +07:00
func (c *store) OMV() OMVService {
return c.omv
}
2022-11-30 12:16:11 +08:00
func (c *store) Event() EventService {
return c.event
}
func (c *store) Gateway() external.ManagementService {
2022-08-04 19:14:53 -04:00
return c.gateway
}
func (c *store) User() UserService {
return c.user
}
2024-02-04 08:15:37 +00:00
func (c *store) MessageBus() *message_bus.ClientWithResponses {
client, _ := message_bus.NewClientWithResponses("", func(c *message_bus.Client) error {
// error will never be returned, as we always want to return a client, even with wrong address,
// in order to avoid panic.
//
// If we don't avoid panic, message bus becomes a hard dependency, which is not what we want.
messageBusAddress, err := external.GetMessageBusAddress(config.CommonInfo.RuntimePath)
if err != nil {
c.Server = "message bus address not found"
return nil
}
c.Server = messageBusAddress
return nil
})
return client
}