Skip to content
Snippets Groups Projects
Commit 3fba29d9 authored by Yege1893's avatar Yege1893
Browse files

failed api calls

parent 7460987d
No related branches found
No related tags found
1 merge request!4Master
...@@ -5,14 +5,16 @@ import ( ...@@ -5,14 +5,16 @@ import (
"fmt" "fmt"
"io" "io"
"net/http" "net/http"
"time"
"gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/highlanderticketing/model" "gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/highlanderticketing/model"
"gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/highlanderticketing/service"
) )
func GetMatchesOfApiToDb(apiUrl string) { func GetMatchesOfApi(apiUrl string) []*model.Match {
data := getData(apiUrl) data := getData(apiUrl)
formatJsonCreateMatch(data) fmt.Println(data)
matches := formatJsonToMatches(data)
return matches
} }
func getData(apiUrl string) []byte { func getData(apiUrl string) []byte {
...@@ -38,26 +40,46 @@ func getData(apiUrl string) []byte { ...@@ -38,26 +40,46 @@ func getData(apiUrl string) []byte {
return responseBody return responseBody
} }
func formatJsonCreateMatch(jsonArray []byte) { func formatJsonToMatches(jsonArray []byte) []*model.Match {
var match model.Match var match *model.Match
var matches []*model.Match
var results []map[string]interface{} var results []map[string]interface{}
json.Unmarshal([]byte(jsonArray), &results) json.Unmarshal([]byte(jsonArray), &results)
for _, result := range results { for _, result := range results {
match.Date = result["matchDateTime"].(string) fmt.Println(result, "result")
match.ExternalID = int64(result["matchID"].(float64))
fmt.Println(match.ExternalID)
match.LeagueName = result["leagueName"].(string)
match.Date = result["matchDateTime"].(time.Time)
fmt.Println(*match)
if team1, ok := result["team1"].(map[string]interface{}); ok { if team1, ok := result["team1"].(map[string]interface{}); ok {
if name, ok := team1["teamName"].(string); ok { if name, ok := team1["shortName"].(string); ok {
match.Location = name match.Location = name
} }
} }
if team1, ok := result["team1"].(map[string]interface{}); ok {
if name, ok := team1["teamName"].(string); ok {
if name != "VfB Stuttgart" {
match.Opponenent = name
}
}
}
if team2, ok := result["team2"].(map[string]interface{}); ok { if team2, ok := result["team2"].(map[string]interface{}); ok {
if name, ok := team2["teamName"].(string); ok { if name, ok := team2["teamName"].(string); ok {
if name == "VfB Stuttgart" { if name == "VfB Stuttgart" {
match.AwayMatch = true match.AwayMatch = true
} else {
match.AwayMatch = false
match.Opponenent = name
} }
} }
} }
service.CreateMatch(&match) fmt.Println(&matches)
matches = append(matches, match)
} }
return matches
} }
package main package main
import ( import (
"fmt"
"net/http" "net/http"
"os" "os"
...@@ -8,6 +9,7 @@ import ( ...@@ -8,6 +9,7 @@ import (
"github.com/joho/godotenv" "github.com/joho/godotenv"
"github.com/nats-io/nats.go" "github.com/nats-io/nats.go"
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
"gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/highlanderticketing/api"
"gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/highlanderticketing/db" "gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/highlanderticketing/db"
"gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/highlanderticketing/handler" "gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/highlanderticketing/handler"
"gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/highlanderticketing/service" "gitlab.reutlingen-university.de/ege/highlander-ticketing-go-ss2023/src/highlanderticketing/service"
...@@ -17,9 +19,10 @@ func main() { ...@@ -17,9 +19,10 @@ func main() {
/*service.DeleteAllUsers() /*service.DeleteAllUsers()
var userArray []model.User var userArray []model.User
userArray, _ = service.GetAllUsers() userArray, _ = service.GetAllUsers()
fmt.Println(userArray) fmt.Println(userArray)*/
service.DeleteAllMatches() service.DeleteAllMatches()
api.GetMatchesOfApiToDb("https://api.openligadb.de/getmatchesbyteamid/16/5/0")*/ matches := api.GetMatchesOfApi("https://api.openligadb.de/getmatchesbyteamid/16/10/0")
fmt.Println(&matches)
if err := godotenv.Load(".env"); err != nil { if err := godotenv.Load(".env"); err != nil {
log.Fatalf("Error loading .env file") log.Fatalf("Error loading .env file")
......
package model package model
import ( import (
"time"
"go.mongodb.org/mongo-driver/bson/primitive" "go.mongodb.org/mongo-driver/bson/primitive"
) )
type Match struct { type Match struct {
ID primitive.ObjectID `bson:"_id, omitempty"` ID primitive.ObjectID `bson:"_id, omitempty"`
ExternalID int64 `bson:"externalID"`
InitialTicketAmount int32 `bson:"initial_ticket_amount"` InitialTicketAmount int32 `bson:"initial_ticket_amount"`
AvailableTicketAmount int32 `bson:"available_ticket_amount"` AvailableTicketAmount int32 `bson:"available_ticket_amount"`
Opponenent string `bson:"opponent"`
LeagueName string `bson:"league_name"`
AwayMatch bool `bson:"away_match"` AwayMatch bool `bson:"away_match"`
Location string `bson:"location"` Location string `bson:"location"`
Date string `bson:"date, omitempty"` Date time.Time `bson:"date"`
OrderAmount int32 `bson:"orderamount, omitempty"` OrderAmount int32 `bson:"orderamount"`
Orders []Order `bson:"orders"` Orders []Order `bson:"orders"`
} }
......
...@@ -16,7 +16,7 @@ func AddMatchOrder(matchID primitive.ObjectID, order *model.Order) error { ...@@ -16,7 +16,7 @@ func AddMatchOrder(matchID primitive.ObjectID, order *model.Order) error {
filter := bson.D{primitive.E{Key: "_id", Value: matchID}} filter := bson.D{primitive.E{Key: "_id", Value: matchID}}
order.ID = primitive.NewObjectID() order.ID = primitive.NewObjectID()
matchToFind := &model.Match{} matchToFind := &model.Match{}
emailContent := model.EmialContent{Name: order.User.Name, AwayMatch: matchToFind.AwayMatch, Location: matchToFind.Location, Date: matchToFind.Date, Emailadress: order.User.Email, OrderID: matchToFind.ID.String()} emailContent := model.EmialContent{Name: order.User.Name, AwayMatch: matchToFind.AwayMatch, Location: matchToFind.Location, Date: matchToFind.Date.String(), Emailadress: order.User.Email, OrderID: matchToFind.ID.String()}
updater := bson.D{primitive.E{Key: "$push", Value: bson.D{ updater := bson.D{primitive.E{Key: "$push", Value: bson.D{
primitive.E{Key: "orders", Value: order}, primitive.E{Key: "orders", Value: order},
...@@ -162,7 +162,7 @@ func CancelOrder(matchID primitive.ObjectID, order *model.Order) error { ...@@ -162,7 +162,7 @@ func CancelOrder(matchID primitive.ObjectID, order *model.Order) error {
natsServer, err := ConnectToNats() natsServer, err := ConnectToNats()
defer natsServer.Nc.Close() defer natsServer.Nc.Close()
emailContent := model.EmialContent{Name: order.User.Name, AwayMatch: matchToFind.AwayMatch, Location: matchToFind.Location, Date: matchToFind.Date, Emailadress: order.User.Email, OrderID: order.ID.String()} emailContent := model.EmialContent{Name: order.User.Name, AwayMatch: matchToFind.AwayMatch, Location: matchToFind.Location, Date: matchToFind.Date.String(), Emailadress: order.User.Email, OrderID: order.ID.String()}
if err := natsServer.ConfirmCancel(&emailContent); err != nil { if err := natsServer.ConfirmCancel(&emailContent); err != nil {
return fmt.Errorf("error sending confirm email %v", err) return fmt.Errorf("error sending confirm email %v", err)
} else { } else {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment