tools/email-tester/main.go

82 lines
1.7 KiB
Go

package main
import (
"fmt"
"gopkg.in/yaml.v2"
"io/ioutil"
"os"
"penahub.gitlab.yandexcloud.net/pena-services/email-tester/model"
"penahub.gitlab.yandexcloud.net/pena-services/email-tester/senders"
)
type event string
var toClient event = "toClient"
var reminder event = "reminder"
func main() {
fmt.Println("Need event type 'toClient' or 'reminder':")
var eventFlag string
fmt.Scanln(&eventFlag)
defer func() {
fmt.Println("if you want exit write 'exit'")
var exit string
fmt.Scanln(&exit)
if exit == "exit" {
return
}
}()
config, err := loadConfig("config.yaml")
if err != nil {
fmt.Println(err)
return
}
err = config.Validate()
if err != nil {
fmt.Println("failed validate config:", err)
return
}
switch eventFlag {
case string(toClient):
fmt.Println("Processing 'toClient' event")
err = senders.ToClientTesting(config)
if err != nil {
fmt.Println("error process task for toClient test:", err)
return
}
fmt.Println("OK check mailbox")
case string(reminder):
fmt.Println("Processing 'reminder' event")
err = senders.ReminderTesting(config)
if err != nil {
fmt.Println("error process task for reminder test:", err)
return
}
fmt.Println("OK check mailbox")
default:
fmt.Println("No event type or unknown event type specified need 'toClient' or 'reminder'")
}
}
func loadConfig(filename string) (model.Config, error) {
var config model.Config
file, err := os.Open(filename)
if err != nil {
return config, err
}
defer file.Close()
data, err := ioutil.ReadAll(file)
if err != nil {
return config, err
}
err = yaml.Unmarshal(data, &config)
if err != nil {
return config, err
}
return config, nil
}