package main

import (
	"github.com/gin-gonic/gin"
	"os"
	"time"
)

func main() {
	r := gin.Default()
	r.GET("/ping", func(c *gin.Context) {
		c.JSON(200, gin.H{
			"message":  "pong",
			"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())
	}
}