2024-02-21 11:45:10 +07:00
|
|
|
package service
|
|
|
|
|
|
|
|
import (
|
2024-02-21 12:06:40 +07:00
|
|
|
"github.com/KaySar12/NextZen-Common/external"
|
2024-02-21 11:45:10 +07:00
|
|
|
"gorm.io/gorm"
|
|
|
|
)
|
|
|
|
|
|
|
|
var MyService Repository
|
|
|
|
|
|
|
|
type Repository interface {
|
|
|
|
Gateway() external.ManagementService
|
|
|
|
User() UserService
|
|
|
|
Event() EventService
|
|
|
|
}
|
|
|
|
|
|
|
|
func NewService(db *gorm.DB, RuntimePath string) Repository {
|
|
|
|
|
|
|
|
gatewayManagement, err := external.NewManagementService(RuntimePath)
|
|
|
|
if err != nil {
|
|
|
|
panic(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
return &store{
|
|
|
|
gateway: gatewayManagement,
|
|
|
|
user: NewUserService(db),
|
|
|
|
event: NewEventService(db),
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
type store struct {
|
|
|
|
gateway external.ManagementService
|
|
|
|
user UserService
|
|
|
|
event EventService
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *store) Event() EventService {
|
|
|
|
return c.event
|
|
|
|
}
|
|
|
|
func (c *store) Gateway() external.ManagementService {
|
|
|
|
return c.gateway
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *store) User() UserService {
|
|
|
|
return c.user
|
|
|
|
}
|