base

package
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 24, 2022 License: MIT Imports: 3 Imported by: 0

README

GoCryptoTrader package Base

Build Status Software License GoDoc Coverage Status Go Report Card

This base package is part of the GoCryptoTrader codebase.

This is still in active development

You can track ideas, planned features and what's in progress on this Trello board: https://trello.com/b/ZAhMhpOy/gocryptotrader.

Join our slack to discuss all things related to GoCryptoTrader! GoCryptoTrader Slack

Base Communications package

Current Features
  • Used to enforce standard variables and methods across the communication packages
Please click GoDocs chevron above to view current GoDoc information for this package

Contribution

Please feel free to submit any pull requests or suggest any desired features to be added.

When submitting a PR, please abide by our coding guidelines:

  • Code must adhere to the official Go formatting guidelines (i.e. uses gofmt).
  • Code must be documented adhering to the official Go commentary guidelines.
  • Code must adhere to our coding style.
  • Pull requests need to be based on and opened against the master branch.

Donations

If this framework helped you in any way, or you would like to support the developers working on it, please donate Bitcoin to:

bc1qk0jareu4jytc0cfrhr5wgshsq8282awpavfahc

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Base

type Base struct {
	Name           string
	Enabled        bool
	Verbose        bool
	Connected      bool
	ServiceStarted time.Time
}

Base enforces standard variables across communication packages

func (*Base) GetName

func (b *Base) GetName() string

GetName returns a package name

func (*Base) GetStatus

func (b *Base) GetStatus() string

GetStatus returns status data

func (*Base) IsConnected

func (b *Base) IsConnected() bool

IsConnected returns if the package is connected to a server and/or ready to send

func (*Base) IsEnabled

func (b *Base) IsEnabled() bool

IsEnabled returns if the comms package has been enabled in the configuration

func (*Base) SetServiceStarted

func (b *Base) SetServiceStarted(t time.Time)

SetServiceStarted sets the time the service started

type CommsStatus

type CommsStatus struct {
	Enabled   bool `json:"enabled"`
	Connected bool `json:"connected"`
}

CommsStatus stores the status of a comms relayer

type CommunicationsConfig

type CommunicationsConfig struct {
	SlackConfig     SlackConfig     `json:"slack"`
	SMSGlobalConfig SMSGlobalConfig `json:"smsGlobal"`
	SMTPConfig      SMTPConfig      `json:"smtp"`
	TelegramConfig  TelegramConfig  `json:"telegram"`
}

CommunicationsConfig holds all the information needed for each enabled communication package

func (*CommunicationsConfig) IsAnyEnabled

func (c *CommunicationsConfig) IsAnyEnabled() bool

IsAnyEnabled returns whether or any any comms relayers are enabled

type Event

type Event struct {
	Type    string
	Message string
}

Event is a generalise event type

type IComm

type IComm []ICommunicate

IComm is the main interface array across the communication packages

func (IComm) GetEnabledCommunicationMediums

func (c IComm) GetEnabledCommunicationMediums() error

GetEnabledCommunicationMediums prints out enabled and connected communication packages (#debug output only)

func (IComm) GetStatus

func (c IComm) GetStatus() map[string]CommsStatus

GetStatus returns the status of the comms relayers

func (IComm) PushEvent

func (c IComm) PushEvent(event Event)

PushEvent pushes triggered events to all enabled communication links

func (IComm) Setup

func (c IComm) Setup()

Setup sets up communication variables and initiates a connection to the communication mediums

type ICommunicate

type ICommunicate interface {
	Setup(config *CommunicationsConfig)
	Connect() error
	PushEvent(Event) error
	IsEnabled() bool
	IsConnected() bool
	GetName() string
	SetServiceStarted(time.Time)
}

ICommunicate enforces standard functions across communication packages

type SMSContact

type SMSContact struct {
	Name    string `json:"name"`
	Number  string `json:"number"`
	Enabled bool   `json:"enabled"`
}

SMSContact stores the SMS contact info

type SMSGlobalConfig

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"`
}

SMSGlobalConfig structure holds all the variables you need for instant messaging and broadcast used by SMSGlobal

type SMTPConfig

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"`
}

SMTPConfig holds all variables to start and run the SMTP package

type SlackConfig

type SlackConfig struct {
	Name              string `json:"name"`
	Enabled           bool   `json:"enabled"`
	Verbose           bool   `json:"verbose"`
	TargetChannel     string `json:"targetChannel"`
	VerificationToken string `json:"verificationToken"`
}

SlackConfig holds all variables to start and run the Slack package

type TelegramConfig

type TelegramConfig struct {
	Name              string `json:"name"`
	Enabled           bool   `json:"enabled"`
	Verbose           bool   `json:"verbose"`
	VerificationToken string `json:"verificationToken"`
}

TelegramConfig holds all variables to start and run the Telegram package

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL