Files
sender/util/util.go
T
phoenixandphoenix a1c197cb06 experiment (#12)
Reviewed-on: #12
Co-authored-by: phoenix <kundeng00@pm.me>
Co-committed-by: phoenix <kundeng00@pm.me>
2025-11-14 22:09:08 +00:00

106 lines
1.9 KiB
Go

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