...
1 package webserver
2
3 import (
4 "context"
5 "encoding/json"
6
7 "github.com/cybertec-postgresql/pgwatch/v3/internal/db"
8 "github.com/cybertec-postgresql/pgwatch/v3/internal/metrics"
9 "github.com/cybertec-postgresql/pgwatch/v3/internal/sources"
10 )
11
12 func (server *WebUIServer) TryConnectToDB(params []byte) (err error) {
13 return db.Ping(context.TODO(), string(params))
14 }
15
16
17 func (server *WebUIServer) UpdatePreset(name string, params []byte) error {
18 var p metrics.Preset
19 err := json.Unmarshal(params, &p)
20 if err != nil {
21 return err
22 }
23 return server.metricsReaderWriter.UpdatePreset(name, p)
24 }
25
26
27 func (server *WebUIServer) GetPresets() (res string, err error) {
28 var mr *metrics.Metrics
29 if mr, err = server.metricsReaderWriter.GetMetrics(); err != nil {
30 return
31 }
32 b, _ := json.Marshal(mr.PresetDefs)
33 res = string(b)
34 return
35 }
36
37
38 func (server *WebUIServer) DeletePreset(name string) error {
39 return server.metricsReaderWriter.DeletePreset(name)
40 }
41
42
43 func (server *WebUIServer) GetMetrics() (res string, err error) {
44 var mr *metrics.Metrics
45 if mr, err = server.metricsReaderWriter.GetMetrics(); err != nil {
46 return
47 }
48 b, _ := json.Marshal(mr.MetricDefs)
49 res = string(b)
50 return
51 }
52
53
54 func (server *WebUIServer) UpdateMetric(name string, params []byte) error {
55 var m metrics.Metric
56 err := json.Unmarshal(params, &m)
57 if err != nil {
58 return err
59 }
60 return server.metricsReaderWriter.UpdateMetric(name, m)
61 }
62
63
64 func (server *WebUIServer) DeleteMetric(name string) error {
65 return server.metricsReaderWriter.DeleteMetric(name)
66 }
67
68
69 func (server *WebUIServer) GetSources() (res string, err error) {
70 var dbs sources.Sources
71 if dbs, err = server.sourcesReaderWriter.GetSources(); err != nil {
72 return
73 }
74 b, _ := json.Marshal(dbs)
75 res = string(b)
76 return
77 }
78
79
80 func (server *WebUIServer) DeleteSource(database string) error {
81 return server.sourcesReaderWriter.DeleteSource(database)
82 }
83
84
85 func (server *WebUIServer) UpdateSource(params []byte) error {
86 var md sources.Source
87 err := json.Unmarshal(params, &md)
88 if err != nil {
89 return err
90 }
91 return server.sourcesReaderWriter.UpdateSource(md)
92 }
93