From 7ad054f1ef32d9d1bdb4cd0b6d0ce32654921a1f Mon Sep 17 00:00:00 2001 From: Tomasz Polgrabia Date: Tue, 22 Oct 2024 23:46:23 +0200 Subject: [PATCH] Added /info handler to list the director --- 2024/10/golang_matrix_demo1/main.go | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/2024/10/golang_matrix_demo1/main.go b/2024/10/golang_matrix_demo1/main.go index 5148ef4..da9f8b3 100644 --- a/2024/10/golang_matrix_demo1/main.go +++ b/2024/10/golang_matrix_demo1/main.go @@ -2,6 +2,7 @@ package main import ( "github.com/gin-gonic/gin" + "os" "time" ) @@ -13,6 +14,34 @@ func main() { "datetime": time.Now(), }) }) + + r.GET("/info", func(c *gin.Context) { + var directories []map[string]string + dirs, err := os.ReadDir(".") + + if err != nil { + c.JSON(500, gin.H{ + "message": "it failed", + }) + return + } + + for i := 0; i < len(dirs); i++ { + m := make(map[string]string) + m["name"] = dirs[i].Name() + if dirs[i].IsDir() { + m["dir"] = "yes" + } else { + m["dir"] = "no" + } + directories = append(directories, m) + } + + c.JSON(200, gin.H{ + "dirs": directories, + }) + }) + err := r.Run("localhost:8080") if err != nil { panic("Couldn't run the server. It failed with the error: " + err.Error())