52 lines
1.3 KiB
Go
52 lines
1.3 KiB
Go
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")
|
|
}
|