From 4ddc054c642c9cb1f78ba55ea8787f4538358d12 Mon Sep 17 00:00:00 2001 From: Andrew Scott Date: Tue, 26 Jul 2022 03:42:51 -0400 Subject: [PATCH] Added extended.go for server and client --- server/extended.go | 42 +++++++++++++++++++++++++++++++++++++++++ test-client/extended.go | 20 ++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 server/extended.go create mode 100644 test-client/extended.go diff --git a/server/extended.go b/server/extended.go new file mode 100644 index 0000000..d5d08e5 --- /dev/null +++ b/server/extended.go @@ -0,0 +1,42 @@ +package main + +import ( + "context" + "fmt" + "io/ioutil" + "log" + "net/http" + "os" + + pb "codeberg.org/andcscott/OpenWeatherMap-gRPC-API/proto" +) + +func getExtended(in *pb.RequestExtended) string { + + city := in.City + days := "&cnt=" + fmt.Sprint(in.Days) + url := "https://api.openweathermap.org/data/2.5/forecast/daily?q=" + token := "&appid=" + os.Getenv("API_KEY") + + url = url + city + "&units=imperial" + days + token + + res, err := http.Get(url) + if err != nil { + log.Printf("Error fetching extended weather: %v\n", err) + } + defer res.Body.Close() + + body, err := ioutil.ReadAll(res.Body) + if err != nil { + log.Printf("Error reading extending weather: %v\n", err) + } + return string(body) +} + +func (s *Server) Extended(ctx context.Context, in *pb.RequestExtended) (*pb.SendExtended, error) { + log.Println("'Extended' function called...") + + return &pb.SendExtended{ + Payload: getExtended(in), + }, nil +} diff --git a/test-client/extended.go b/test-client/extended.go new file mode 100644 index 0000000..4442593 --- /dev/null +++ b/test-client/extended.go @@ -0,0 +1,20 @@ +package main + +import ( + "context" + "log" + + pb "codeberg.org/andcscott/OpenWeatherMap-gRPC-API/proto" +) + +func doExtended(c pb.WeatherServiceClient) { + + res, err := c.Extended(context.Background(), &pb.RequestExtended{ + City: "Corvallis", + Days: 7, + }) + if err != nil { + log.Fatalln(err) + } + log.Println(res.Payload) +}