mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-05-13 23:16:45 +00:00
* CI: Bump go version, linters and fix minor issues * Bump version, fix loop variables * Revert * Rid TODOs now that 1.51 has been released
125 lines
3.3 KiB
Go
125 lines
3.3 KiB
Go
package base
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
// Base enforces standard variables across communication packages
|
|
type Base struct {
|
|
Name string
|
|
Enabled bool
|
|
Verbose bool
|
|
Connected bool
|
|
ServiceStarted time.Time
|
|
}
|
|
|
|
// Event is a generalise event type
|
|
type Event struct {
|
|
Type string
|
|
Message string
|
|
}
|
|
|
|
// CommsStatus stores the status of a comms relayer
|
|
type CommsStatus struct {
|
|
Enabled bool `json:"enabled"`
|
|
Connected bool `json:"connected"`
|
|
}
|
|
|
|
// IsEnabled returns if the comms package has been enabled in the configuration
|
|
func (b *Base) IsEnabled() bool {
|
|
return b.Enabled
|
|
}
|
|
|
|
// IsConnected returns if the package is connected to a server and/or ready to
|
|
// send
|
|
func (b *Base) IsConnected() bool {
|
|
return b.Connected
|
|
}
|
|
|
|
// GetName returns a package name
|
|
func (b *Base) GetName() string {
|
|
return b.Name
|
|
}
|
|
|
|
// GetStatus returns status data
|
|
func (b *Base) GetStatus() string {
|
|
return `
|
|
GoCryptoTrader Service: Online
|
|
Service Started: ` + b.ServiceStarted.String()
|
|
}
|
|
|
|
// SetServiceStarted sets the time the service started
|
|
func (b *Base) SetServiceStarted(t time.Time) {
|
|
b.ServiceStarted = t
|
|
}
|
|
|
|
// CommunicationsConfig holds all the information needed for each
|
|
// enabled communication package
|
|
type CommunicationsConfig struct {
|
|
SlackConfig SlackConfig `json:"slack"`
|
|
SMSGlobalConfig SMSGlobalConfig `json:"smsGlobal"`
|
|
SMTPConfig SMTPConfig `json:"smtp"`
|
|
TelegramConfig TelegramConfig `json:"telegram"`
|
|
}
|
|
|
|
// IsAnyEnabled returns whether any comms relayers
|
|
// are enabled
|
|
func (c *CommunicationsConfig) IsAnyEnabled() bool {
|
|
if c.SMSGlobalConfig.Enabled ||
|
|
c.SMTPConfig.Enabled ||
|
|
c.SlackConfig.Enabled ||
|
|
c.TelegramConfig.Enabled {
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
// SlackConfig holds all variables to start and run the Slack package
|
|
type SlackConfig struct {
|
|
Name string `json:"name"`
|
|
Enabled bool `json:"enabled"`
|
|
Verbose bool `json:"verbose"`
|
|
TargetChannel string `json:"targetChannel"`
|
|
VerificationToken string `json:"verificationToken"`
|
|
}
|
|
|
|
// SMSContact stores the SMS contact info
|
|
type SMSContact struct {
|
|
Name string `json:"name"`
|
|
Number string `json:"number"`
|
|
Enabled bool `json:"enabled"`
|
|
}
|
|
|
|
// SMSGlobalConfig structure holds all the variables you need for instant
|
|
// messaging and broadcast used by SMSGlobal
|
|
type SMSGlobalConfig struct {
|
|
Name string `json:"name"`
|
|
From string `json:"from"`
|
|
Enabled bool `json:"enabled"`
|
|
Verbose bool `json:"verbose"`
|
|
Username string `json:"username"`
|
|
Password string `json:"password"`
|
|
Contacts []SMSContact `json:"contacts"`
|
|
}
|
|
|
|
// SMTPConfig holds all variables to start and run the SMTP package
|
|
type SMTPConfig struct {
|
|
Name string `json:"name"`
|
|
Enabled bool `json:"enabled"`
|
|
Verbose bool `json:"verbose"`
|
|
Host string `json:"host"`
|
|
Port string `json:"port"`
|
|
AccountName string `json:"accountName"`
|
|
AccountPassword string `json:"accountPassword"`
|
|
From string `json:"from"`
|
|
RecipientList string `json:"recipientList"`
|
|
}
|
|
|
|
// TelegramConfig holds all variables to start and run the Telegram package
|
|
type TelegramConfig struct {
|
|
Name string `json:"name"`
|
|
Enabled bool `json:"enabled"`
|
|
Verbose bool `json:"verbose"`
|
|
VerificationToken string `json:"verificationToken"`
|
|
}
|