diff --git a/src/highlanderticketing/db/fill_db.go b/src/highlanderticketing/db/fill_db.go deleted file mode 100644 index 0939d50c3e93b241e954f8a369cdd5b15f405737..0000000000000000000000000000000000000000 --- 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 b904a870b4e8f41f2e54d02119bb2fac1fb27cec..3216487108a5ea74f71ec43f8c0a0861d5507633 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 26e5c3c71e9c593a5a96970090c2f1faf23283b5..bf136fbb8d8883fac5b08a683a55ccbcec56316b 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 c05efbebf8855c51f55845ea421a525dc7d48c4b..28d7649bfff0eee799f7234d4be67a75674a4168 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 dd42a149e708afc068b61424f56ed4132389c74b..615d5e1fcabb8252a18ef56030c53146207f4298 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 454e8093b07a84f7484d5824c89b804785adb711..3519b32d5cdbfb4e8d17bc7980a3c93e9cec4f29 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) + } +}