From 9691481bc2123c800233ba05a4fd5dbafbf5a1cc Mon Sep 17 00:00:00 2001
From: Yege1893 <yannick.ege@web.de>
Date: Tue, 20 Jun 2023 16:39:04 +0200
Subject: [PATCH] connection to api

---
 src/highlanderticketing/db/fill_db.go    |  4 --
 src/highlanderticketing/go.mod           |  8 +++-
 src/highlanderticketing/go.sum           | 11 +++++
 src/highlanderticketing/main.go          |  2 +
 src/highlanderticketing/model/match.go   |  3 +-
 src/highlanderticketing/service/match.go | 54 ++++++++++++++++++++++++
 6 files changed, 75 insertions(+), 7 deletions(-)
 delete mode 100644 src/highlanderticketing/db/fill_db.go

diff --git a/src/highlanderticketing/db/fill_db.go b/src/highlanderticketing/db/fill_db.go
deleted file mode 100644
index 0939d50..0000000
--- a/src/highlanderticketing/db/fill_db.go
+++ /dev/null
@@ -1,4 +0,0 @@
-package db
-
-func Fill_db() {
-}
diff --git a/src/highlanderticketing/go.mod b/src/highlanderticketing/go.mod
index b904a87..3216487 100644
--- a/src/highlanderticketing/go.mod
+++ b/src/highlanderticketing/go.mod
@@ -7,10 +7,16 @@ require google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc
 require (
 	github.com/golang/snappy v0.0.1 // indirect
 	github.com/klauspost/compress v1.13.6 // indirect
+	github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe // indirect
+	github.com/pkg/errors v0.9.1 // indirect
+	github.com/xdg-go/pbkdf2 v1.0.0 // indirect
+	github.com/xdg-go/scram v1.1.1 // indirect
+	github.com/xdg-go/stringprep v1.0.3 // indirect
 	github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d // indirect
 	golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d // indirect
+	golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect
 	golang.org/x/sys v0.6.0 // indirect
-	gopkg.in/yaml.v3 v3.0.1 // indirect
+	golang.org/x/text v0.8.0 // indirect
 )
 
 require (
diff --git a/src/highlanderticketing/go.sum b/src/highlanderticketing/go.sum
index 26e5c3c..bf136fb 100644
--- a/src/highlanderticketing/go.sum
+++ b/src/highlanderticketing/go.sum
@@ -11,10 +11,14 @@ github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=
 github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
 github.com/klauspost/compress v1.13.6 h1:P76CopJELS0TiO2mebmnzgWaajssP/EszplttgQxcgc=
 github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
+github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
 github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
 github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
+github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
 github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
+github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe h1:iruDEfMl2E6fbMZ9s0scYfZQ84/6SPL6zC8ACM2oIL0=
 github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
+github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
 github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
 github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
@@ -24,9 +28,13 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
 github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
 github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
 github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4=
 github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
+github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c=
 github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
+github.com/xdg-go/scram v1.1.1 h1:VOMT+81stJgXW3CpHyqHN3AXDYIMsx56mEFrB37Mb/E=
 github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g=
+github.com/xdg-go/stringprep v1.0.3 h1:kdwGpVNwPFtjs98xCGkHjQtGKh86rDcRZN17QEMCOIs=
 github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8=
 github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d h1:splanxYIlg+5LfHAM6xpdFEAYOk8iySO56hMFq6uLyA=
 github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA=
@@ -35,6 +43,7 @@ go.mongodb.org/mongo-driver v1.11.7/go.mod h1:G9TgswdsWjX4tmDA5zfs2+6AEPpYJwqbly
 golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d h1:sK3txAijHtOK88l68nt020reeT1ZdKLIYetKl95FzVY=
 golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
 golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=
 golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -45,6 +54,8 @@ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
+golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68=
+golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
diff --git a/src/highlanderticketing/main.go b/src/highlanderticketing/main.go
index c05efbe..28d7649 100644
--- a/src/highlanderticketing/main.go
+++ b/src/highlanderticketing/main.go
@@ -11,6 +11,8 @@ import (
 )
 
 func main() {
+	//service.DeleteAllMatches()
+	//service.GetMatchesOfApiToDb("https://api.openligadb.de/getmatchesbyteamid/16/5/0")
 	//init db
 	_, err := db.GetMongoClient()
 	if err != nil {
diff --git a/src/highlanderticketing/model/match.go b/src/highlanderticketing/model/match.go
index dd42a14..615d5e1 100644
--- a/src/highlanderticketing/model/match.go
+++ b/src/highlanderticketing/model/match.go
@@ -2,7 +2,6 @@ package model
 
 import (
 	"go.mongodb.org/mongo-driver/bson/primitive"
-	"google.golang.org/genproto/googleapis/type/date"
 )
 
 type Match struct {
@@ -11,7 +10,7 @@ type Match struct {
 	AvailableTicketAmount int32              `bson:"available_ticket_amount"`
 	AwayMatch             bool               `bson:"away_match"`
 	Location              string             `bson:"location"`
-	Date                  date.Date          `bson:"date, omitempty"`
+	Date                  string             `bson:"date, omitempty"`
 	Travel                Travel             `bson:"travel"`
 	Orders                []Order            `bson:"orders"`
 }
diff --git a/src/highlanderticketing/service/match.go b/src/highlanderticketing/service/match.go
index 454e809..3519b32 100644
--- a/src/highlanderticketing/service/match.go
+++ b/src/highlanderticketing/service/match.go
@@ -2,7 +2,10 @@ package service
 
 import (
 	"context"
+	"encoding/json"
 	"fmt"
+	"io"
+	"net/http"
 
 	"gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/highlanderticketing/db"
 	"gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/highlanderticketing/model"
@@ -166,3 +169,54 @@ func DeleteAllMatches() error {
 	}
 	return nil
 }
+func GetMatchesOfApiToDb(apiUrl string) {
+	data := getData(apiUrl)
+	formatJsonCreateMatch(data)
+}
+
+func getData(apiUrl string) []byte {
+	request, error := http.NewRequest("GET", apiUrl, nil)
+
+	if error != nil {
+		fmt.Println(error)
+	}
+	client := &http.Client{}
+	response, error := client.Do(request)
+
+	if error != nil {
+		fmt.Println(error)
+	}
+
+	responseBody, error := io.ReadAll(response.Body)
+
+	if error != nil {
+		fmt.Println(error)
+	}
+	defer response.Body.Close()
+
+	return responseBody
+}
+
+func formatJsonCreateMatch(jsonArray []byte) {
+	var match model.Match
+	var results []map[string]interface{}
+
+	json.Unmarshal([]byte(jsonArray), &results)
+
+	for _, result := range results {
+		match.Date = result["matchDateTime"].(string)
+		if team1, ok := result["team1"].(map[string]interface{}); ok {
+			if name, ok := team1["teamName"].(string); ok {
+				match.Location = name
+			}
+		}
+		if team2, ok := result["team2"].(map[string]interface{}); ok {
+			if name, ok := team2["teamName"].(string); ok {
+				if name == "VfB Stuttgart" {
+					match.AwayMatch = true
+				}
+			}
+		}
+		CreateMatch(&match)
+	}
+}
-- 
GitLab