...

Source file src/github.com/cybertec-postgresql/pgwatch/v3/internal/webserver/api.go

Documentation: github.com/cybertec-postgresql/pgwatch/v3/internal/webserver

     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  // UpdatePreset updates the stored preset
    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  // GetPresets ret	urns the list of available presets
    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  // DeletePreset removes the preset from the configuration
    38  func (server *WebUIServer) DeletePreset(name string) error {
    39  	return server.metricsReaderWriter.DeletePreset(name)
    40  }
    41  
    42  // GetMetrics returns the list of metrics
    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  // UpdateMetric updates the stored metric information
    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  // DeleteMetric removes the metric from the configuration
    64  func (server *WebUIServer) DeleteMetric(name string) error {
    65  	return server.metricsReaderWriter.DeleteMetric(name)
    66  }
    67  
    68  // GetSources returns the list of sources fo find databases for monitoring
    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  // DeleteSource removes the source from the list of configured sources
    80  func (server *WebUIServer) DeleteSource(database string) error {
    81  	return server.sourcesReaderWriter.DeleteSource(database)
    82  }
    83  
    84  // UpdateSource updates the configured source information
    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