From ca1d1383d75dcf8ba30a67cf6fd2ad78d5d419ad Mon Sep 17 00:00:00 2001 From: Jannover5000r Date: Mon, 16 Jun 2025 13:39:35 +0200 Subject: [PATCH] Api calls --- Bot/Untis.go | 62 +++++++++++++++++++++++++++++++++++++++++----------- go.mod | 11 +--------- go.sum | 12 ---------- main.go | 2 +- 4 files changed, 51 insertions(+), 36 deletions(-) diff --git a/Bot/Untis.go b/Bot/Untis.go index c385d55..638e836 100644 --- a/Bot/Untis.go +++ b/Bot/Untis.go @@ -1,20 +1,56 @@ package Untis import ( + "bytes" + "encoding/json" "log" + "net/http" + "os" ) -func Run() { - log.Println("Run") - type res struct { - Name string - url string - key int - } - /* r := res{"Jannik", "google.com", 4} - r, err := json.Marshal(r) - if err != nil { - log.Printf("Error marshalling JSON: %v", err) - return - } */ +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("") + } diff --git a/go.mod b/go.mod index 6050381..bf5ea10 100644 --- a/go.mod +++ b/go.mod @@ -2,13 +2,4 @@ module untislogger go 1.24.4 -require ( - github.com/bwmarrin/discordgo v0.29.0 - github.com/joho/godotenv v1.5.1 -) - -require ( - github.com/gorilla/websocket v1.4.2 // indirect - golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b // indirect - golang.org/x/sys v0.0.0-20201119102817-f84b799fce68 // indirect -) +require github.com/joho/godotenv v1.5.1 diff --git a/go.sum b/go.sum index 04715b6..d61b19e 100644 --- a/go.sum +++ b/go.sum @@ -1,14 +1,2 @@ -github.com/bwmarrin/discordgo v0.29.0 h1:FmWeXFaKUwrcL3Cx65c20bTRW+vOb6k8AnaP+EgjDno= -github.com/bwmarrin/discordgo v0.29.0/go.mod h1:NJZpH+1AfhIcyQsPeuBKsUtYrRnjkyu0kIVMCHkZtRY= -github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= -github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= -golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b h1:7mWr3k41Qtv8XlltBkDkl8LoP3mpSgBW8BUoxtEdbXg= -golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68 h1:nxC68pudNYkKU6jWhgrqdreuFiOQWj1Fs7T3VrH4Pjw= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/main.go b/main.go index 21ef4b8..dcd03ad 100644 --- a/main.go +++ b/main.go @@ -42,7 +42,7 @@ func init() { } func main() { - go Untis.Run() //starting API calls function + go Untis.Auth() //starting API calls function // Create a channel to receive OS signals sigChan := make(chan os.Signal, 1) signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM)