internal.kernel.GetKliento   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 2
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 2
nop 0
dl 0
loc 2
rs 10
c 0
b 0
f 0
1
package internal
2
3
import (
4
	"sync"
5
6
	"github.com/memnix/memnix-rest/app/http/controllers"
7
)
8
9
type ServiceContainer interface {
10
	GetUser() controllers.UserController
11
	GetKliento() controllers.KlientoController
12
	GetAuth() controllers.AuthController
13
}
14
15
type kernel struct{}
16
17
func (k kernel) GetUser() controllers.UserController {
18
	return InitializeUser()
19
}
20
21
func (k kernel) GetKliento() controllers.KlientoController {
22
	return InitializeKliento()
23
}
24
25
func (k kernel) GetAuth() controllers.AuthController {
26
	return InitializeAuth()
27
}
28
29
var (
30
	k             *kernel   // kernel is the service container
31
	containerOnce sync.Once // containerOnce is used to ensure that the service container is only initialized once
32
)
33
34
// GetServiceContainer returns the service container
35
func GetServiceContainer() ServiceContainer {
36
	containerOnce.Do(func() {
37
		k = &kernel{}
38
	})
39
	return k
40
}
41