package util import ( "encoding/json" "fmt" "os" "strings" "git.kundeng.us/phoenix/textsender-models/pkg/contact" "git.kundeng.us/phoenix/textsender-models/pkg/message" "git.kundeng.us/phoenix/sender/models" ) func GetPaths(args []string) (configPath string, numberPath string, messagePath string) { configPath = args[1] numberPath = args[2] messagePath = args[3] return } func ParseNumbers(filepath string) (numbers [](models.Number)) { nmbrs := [](string){} content, err := os.ReadFile(filepath) if err != nil { fmt.Println("An error occurred") return numbers } err = json.Unmarshal(content, &nmbrs) if err != nil { fmt.Println("An error occurred") return numbers } for _, nbr := range nmbrs { var number models.Number number.PhoneNumber = nbr numbers = append(numbers, number) } return numbers } func ParseMessage(filepath string) (message models.Message) { msg := [](string){""} content, err := os.ReadFile(filepath) if err != nil { fmt.Println("An error occurred") return } err = json.Unmarshal(content, &msg) if err != nil { fmt.Println("An error occurred") return } message.Text = strings.Join(msg, "") return } func Convert(data interface{}, msgOrNumber int) (interface{}, error) { switch msgOrNumber { case 0: { if msg, ok := data.(models.Message); ok { return message.Message{Content: msg.Text}, nil } else { return nil, fmt.Errorf("Could not resolve value") } } case 1: { var items []contact.Contact switch nbrs := data.(type) { case []models.Number: for _, number := range nbrs { if !number.IsEmpty() { items = append(items, contact.Contact{PhoneNumber: number.PhoneNumber}) } } default: return nil, fmt.Errorf("Unrecognized type") } if len(items) == 0 { return nil, fmt.Errorf("Failure converting") } else { return items, nil } } default: return nil, fmt.Errorf("Invalid msgOrNumber") } }