-
Notifications
You must be signed in to change notification settings - Fork 2
/
facade.go
39 lines (30 loc) · 813 Bytes
/
facade.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package service
import (
"github.com/atla/dungeonsrv/pkg/db"
"github.com/atla/dungeonsrv/pkg/repository"
)
//Facade ...
type Facade interface {
ItemsService() ItemsService
ItemTemplatesService() ItemTemplatesService
}
type facade struct {
is ItemsService
its ItemTemplatesService
db *db.Client
}
//NewFacade creates a new service facade
func NewFacade(db *db.Client, dungeonDataDir string) Facade {
itemsRepo := repository.NewMongoItemsRepository(db)
itemTemplatesRepo := repository.NewItemTemplatesRepository(dungeonDataDir)
return &facade{
is: NewItemsService(itemsRepo, itemTemplatesRepo),
its: NewItemTemplatesService(itemTemplatesRepo),
}
}
func (f *facade) ItemsService() ItemsService {
return f.is
}
func (f *facade) ItemTemplatesService() ItemTemplatesService {
return f.its
}