Untis-Logger/Bot/Untis.go
Jannover5000r ca1d1383d7 Api calls
2025-06-16 13:39:35 +02:00

56 lines
1.2 KiB
Go

package Untis
import (
"bytes"
"encoding/json"
"log"
"net/http"
"os"
)
type Params struct {
Users string `json:"users"`
Password string `json:"key"`
Client string `json:"client"`
}
type Login struct {
Id string `json:"id"`
Method string `json:"method"`
Params Params `json:"params"`
Jsonrpc string `json:"jsonrpc"`
}
type LoginResponse struct {
result struct {
ID string `json:"sessionId"`
PersonType string `json:"personType"`
PersonId string `json:"personId"`
KlasseId string `json:"klasseId"`
}
}
var Url = "https://thalia.webuntis.com/WebUntis/jsonrpc.do?school=Mons_Tabor"
var Password = os.Getenv("UNTIS_PASSWORD")
var USERS = os.Getenv("UNTIS_USER")
func Auth() {
l := Login{"2023-05-06 15:44:22.215292", "authenticate", Params{os.Getenv("UNTIS_USER"), os.Getenv("UNTIS_PASSWORD"), "WebUntis Test"}, "2.0"}
loginJSON, err := json.Marshal(l)
login := bytes.NewReader(loginJSON)
if err != nil {
log.Fatalf("Error marshaling login data: %v", err)
return
}
log.Println("Run")
res, err := http.Post(Url, "application/json", login)
if err != nil {
log.Printf("Error during authentication: %v", err)
return
}
log.Println(res)
log.Println("")
}