Reviewed-on: #12 Co-authored-by: phoenix <kundeng00@pm.me> Co-committed-by: phoenix <kundeng00@pm.me>
106 lines
1.9 KiB
Go
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")
|
|
}
|
|
}
|