forked from CyCoreSystems/ari-proxy
/
modules.go
61 lines (53 loc) · 1.22 KB
/
modules.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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package client
import (
"github.com/CyCoreSystems/ari-proxy/v5/proxy"
"github.com/CyCoreSystems/ari/v5"
)
type modules struct {
c *Client
}
func (m *modules) Data(key *ari.Key) (*ari.ModuleData, error) {
data, err := m.c.dataRequest(&proxy.Request{
Kind: "AsteriskModuleData",
Key: key,
})
if err != nil {
return nil, err
}
return data.Module, nil
}
func (m *modules) Get(key *ari.Key) *ari.ModuleHandle {
k, err := m.c.getRequest(&proxy.Request{
Kind: "AsteriskModuleGet",
Key: key,
})
if err != nil {
m.c.log.Warn("failed to get module for handle", "error", err)
return ari.NewModuleHandle(key, m)
}
return ari.NewModuleHandle(k, m)
}
func (m *modules) List(filter *ari.Key) ([]*ari.Key, error) {
return m.c.listRequest(&proxy.Request{
Kind: "AsteriskModuleList",
Key: filter,
})
}
func (m *modules) Load(key *ari.Key) error {
return m.c.commandRequest(&proxy.Request{
Kind: "AsteriskModuleLoad",
Key: key,
})
}
func (m *modules) Reload(key *ari.Key) error {
return m.c.commandRequest(&proxy.Request{
Kind: "AsteriskModuleReload",
Key: key,
})
}
func (m *modules) Unload(key *ari.Key) error {
return m.c.commandRequest(&proxy.Request{
Kind: "AsteriskModuleUnload",
Key: key,
})
}