From 32646d9496a4fda841a382554553668f328bc7c1 Mon Sep 17 00:00:00 2001 From: Frank Elsinga Date: Wed, 30 Aug 2023 01:00:28 +0200 Subject: [PATCH] modified the localTestClient.go to the new tescase --- client/localServer/localTestClient.go | 264 ++------------------------ 1 file changed, 12 insertions(+), 252 deletions(-) diff --git a/client/localServer/localTestClient.go b/client/localServer/localTestClient.go index 191e9050..4205b2e0 100644 --- a/client/localServer/localTestClient.go +++ b/client/localServer/localTestClient.go @@ -1,14 +1,7 @@ package main import ( - "bufio" - "bytes" "context" - "errors" - "fmt" - "image" - "image/jpeg" - "os" "time" pb "github.com/TUM-Dev/Campus-Backend/server/api" @@ -22,8 +15,7 @@ const ( testImage = "./localServer/images/sampleimage.jpeg" ) -// main connects to a seperatly started local server and creates ratings for both, cafeterias and dishes. -// Afterwards, they are queried and displayed on the console +// main connects to a separately started local server an allows to test things func main() { // Set up a connection to the local server. log.Info("Connecting...") @@ -36,251 +28,19 @@ func main() { ctx, cancel := context.WithTimeout(context.Background(), time.Second*5) defer cancel() - canteenHeadCount(c, ctx) - - cafeteriaRatingTools(c, ctx) - -} - -func canteenHeadCount(c pb.CampusClient, ctx context.Context) { - res, err := c.GetCanteenHeadCount(ctx, &pb.GetCanteenHeadCountRequest{ - CanteenId: "mensa-garching", - }) - - if err != nil { - log.Error(err) - } else { - log.Info("Canteen HeadCount data request successful.") - log.Info(res) - } -} - -func cafeteriaRatingTools(c pb.CampusClient, ctx context.Context) { - - currentCafeteria := "MENSA_GARCHING" - currentDish := "Vegane rote Grütze mit Soja-Vanillesauce" //must be in the dish table - generateDishRating(c, ctx, currentCafeteria, currentDish, 3) - generateCafeteriaRating(c, ctx, currentCafeteria, 2) - queryCafeteria(currentCafeteria, c, ctx, true) - queryDish(currentCafeteria, currentDish, c, ctx, false) - generateCafeteriaRating(c, ctx, currentCafeteria, 2) - generateCafeteriaRating(c, ctx, currentCafeteria, 2) - generateDishRating(c, ctx, currentCafeteria, currentDish, 1) - - queryCafeteria(currentCafeteria, c, ctx, false) - queryDish(currentCafeteria, currentDish, c, ctx, false) - -} - -func queryDish(cafeteria string, dish string, c pb.CampusClient, ctx context.Context, imageShouldBeStored bool) { - res, err := c.GetDishRatings(ctx, &pb.DishRatingRequest{ - Dish: dish, - CafeteriaId: cafeteria, - Limit: 3, - }) - - if err != nil { - log.Info(err) - } else { - log.Info("Result: ") - log.Info("\tavg : ", res.Avg) - log.Info("\tmin ", res.Min) - log.Info("\tmax ", res.Max) - log.Info("\tstd ", res.Std) - log.Info("Number of individual Ratings", len(res.Rating)) - path := fmt.Sprintf("%s%d%s", "./testImages/dishes/", time.Now().Unix(), "/") - for _, v := range res.Rating { - log.Info("\nRating: ", v.Points) - log.Info("Comment ", v.Comment) - log.Info("Number of Tag Ratings : ", len(v.RatingTags)) - log.Info("Timestamp: ", v.Visited) - log.Info("ImageLength:", len(v.Image)) - if imageShouldBeStored { - _, err := storeImage(path, v.Image) - if err != nil { - log.Info("image was not saved successfully") - } - } - } - log.Info("Rating Tags: ") - for _, v := range res.RatingTags { - log.Info("TagId: ", v.TagId) - log.Info("\tavg: ", v.Avg) - log.Info("\tmin: ", v.Min) - log.Info("\tmax: ", v.Max) - log.Info("\tstd: ", v.Std) - } - log.Info("nameTags: ") - for _, v := range res.NameTags { - log.Info("TagId: ", v.TagId) - log.Info("\tavg: ", v.Avg) - log.Info("\tmin: ", v.Min) - log.Info("\tmax: ", v.Max) - log.Info("\tstd: ", v.Std) - } - } -} - -func queryCafeteria(s string, c pb.CampusClient, ctx context.Context, imageShouldBeStored bool) { - res, err := c.GetCafeteriaRatings(ctx, &pb.CafeteriaRatingRequest{ - CafeteriaId: s, - Limit: 3, - // From: timestamppb.New(time.Date(2022, 7, 8, 16, 0, 0, 0, time.Local)), - // To: timestamppb.New(time.Date(2022, 7, 8, 17, 0, 0, 0, time.Local)), + // add your test here + feedback, err := c.SendFeedback(ctx, &pb.SendFeedbackRequest{ + Topic: "tca", + Email: "frank@elsinga.de", + EmailId: "magic id", + Message: "hi, comrades", + ImageCount: 1, + OsVersion: "manjaro", + AppVersion: "v2", }) - if err != nil { - log.Info(err) + log.WithError(err).Error("error sending feedback occurred") } else { - log.Info("Result: ") - log.Info("avg: ", res.Avg) - log.Info("min", res.Min) - log.Info("max", res.Max) - log.Info("Number of individual Ratings", len(res.Rating)) - path := fmt.Sprintf("%s%d%s", "./testImages/cafeteria/", time.Now().Unix(), "/") - for _, v := range res.Rating { - log.Info("\nRating: ", v.Points) - log.Info("Comment ", v.Comment) - log.Info("Number of Tag Ratings: ", len(v.RatingTags)) - log.Info("Timestamp: ", v.Visited) - log.Info("ImageLength:", len(v.Image)) - if imageShouldBeStored { - _, err := storeImage(path, v.Image) - if err != nil { - log.Info("image was not saved successfully") - } - } - } - - for _, v := range res.RatingTags { - log.Info("\nTagId: ", v.TagId) - log.Info("avg: ", v.Avg) - log.Info("min", v.Min) - log.Info("max", v.Max) - log.Info("std", v.Std) - } - } -} - -func generateCafeteriaRating(c pb.CampusClient, ctx context.Context, cafeteria string, rating int32) { - y := make([]*pb.RatingTag, 2) - y[0] = &pb.RatingTag{ - Points: float64(1 + rating), - TagId: 1, - } - y[1] = &pb.RatingTag{ - Points: float64(2 + rating), - TagId: 2, - } - - _, err := c.NewCafeteriaRating(ctx, &pb.NewCafeteriaRatingRequest{ - Points: rating, - CafeteriaId: cafeteria, - Comment: "Alles super, 2 Sterne", - RatingTags: y, - Image: getImageToBytes(testImage), - }) - - if err != nil { - log.Info(err) - } else { - log.Info("Request successfully: Cafeteria Rating should be stored") - } -} - -func generateDishRating(c pb.CampusClient, ctx context.Context, cafeteria string, dish string, rating int32) { - y := make([]*pb.RatingTag, 3) - y[0] = &pb.RatingTag{ - Points: float64(1 + rating), - TagId: 1, - } - y[1] = &pb.RatingTag{ - Points: float64(2 + rating), - TagId: 2, - } - y[2] = &pb.RatingTag{ - Points: float64(3 + rating), - TagId: 3, - } - - _, err := c.NewDishRating(ctx, &pb.NewDishRatingRequest{ - Points: rating, - CafeteriaId: cafeteria, - Dish: dish, - Comment: "Alles Hähnchen", - RatingTags: y, - Image: getImageToBytes(testImage), - }) - - if err != nil { - log.Info(err) - } else { - log.Info("Request successfully: Dish Rating should be stored") - } -} - -func getImageToBytes(path string) []byte { - - file, err := os.Open(path) - - if err != nil { - fmt.Println(err) - return make([]byte, 0) - } - - defer func(file *os.File) { - err := file.Close() - if err != nil { - log.Info("Request successfully: Dish Rating should be stored") - } - }(file) - - fileInfo, _ := file.Stat() - var size = fileInfo.Size() - byteArray := make([]byte, size) - - buffer := bufio.NewReader(file) - _, err = buffer.Read(byteArray) - if err != nil { - log.Info("Unable to read the byteArray") - } - log.Info("Length of the image as bytes: ", len(byteArray)) - return byteArray -} - -func storeImage(path string, i []byte) (string, error) { - if _, err := os.Stat(path); errors.Is(err, os.ErrNotExist) { - err := os.MkdirAll(path, os.ModePerm) - if err != nil { - log.Info(err) - } - } - img, _, _ := image.Decode(bytes.NewReader(i)) - var imgPath = fmt.Sprintf("%s%d%s", path, 3, ".jpeg") //time.Now().Unix() //use three to force file name collisions - var f, _ = os.Stat(imgPath) - var counter = 1 - for { - if f == nil { - break - } else { - imgPath = fmt.Sprintf("%s%d%s%d%s", path, 3, "v", counter, ".jpeg") //time.Now().Unix() - counter++ - f, _ = os.Stat(imgPath) - } - } - - out, errFile := os.Create(imgPath) - if errFile != nil { - log.Info("Unable to create the new testfile") + log.Info("Success ", feedback.Status) } - defer func(out *os.File) { - err := out.Close() - if err != nil { - log.Info("File was not closed successfully") - } - }(out) - var opts jpeg.Options - opts.Quality = 100 - errFile = jpeg.Encode(out, img, &opts) - return imgPath, errFile }