CloudlogUDP/cloudlog/cloudlog.go

52 lines
1.3 KiB
Go
Raw Permalink Normal View History

2023-11-29 11:02:30 +07:00
package cloudlog
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
"git.rouggy.com/CloudlogUDP/config"
"git.rouggy.com/CloudlogUDP/qso"
)
type CloudlogAPIString struct {
Key string `json:"key"`
StationProfileID string `json:"station_profile_id"`
Type string `json:"type"`
QSOData string `json:"string"`
}
func SendCloudlogMsg(qso qso.QSO, config config.Config) {
QSODataJson := qso.Call + qso.Band + qso.Mode + qso.Freq + qso.QSODate + qso.TimeOn + qso.RSTR + qso.RSTS + qso.GridSquare
jsonStr := CloudlogAPIString{
Key: config.CloudLog.API,
StationProfileID: "1",
Type: "adif",
QSOData: QSODataJson,
}
b, err := json.Marshal(jsonStr)
if err != nil {
fmt.Println("error:", err)
}
req, err := http.NewRequest("POST", config.CloudLog.QSOUrl, bytes.NewBuffer(b))
req.Header.Set("X-Custom-Header", "myvalue")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
// body, _ := io.ReadAll(resp.Body)
// fmt.Println("response Body:", string(body))
fmt.Printf("QSO Details:\nCall: %v\nBand: %v\nFreq: %v\n", qso.Call, qso.Band, qso.Freq)
fmt.Println("QSO Uploaded to Cloudlog")
}