Files
obi/api/main.go

58 lines
977 B
Go

package main
import (
"fmt"
"io/fs"
"log"
"os"
"path"
"net/http"
"github.com/gin-contrib/cors"
"github.com/gin-gonic/gin"
)
func main() {
router := gin.Default()
router.SetTrustedProxies([]string{"127.0.0.1"}) // TODO: fix All origins allowed by default
router.Use(cors.Default())
list := listFiles("/Users/madundead/Syncthing/Obsidian/Personal")
router.GET("/api/v1/files", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"data": list,
"status": "ok",
})
})
if err := router.Run(); err != nil {
panic(err)
}
}
func listFiles(dir string) []string {
root := os.DirFS(dir)
mdFiles, err := fs.Glob(root, "**/*.md")
if err != nil {
log.Fatal(err)
}
var files []string
for _, v := range mdFiles {
files = append(files, path.Join(dir, v))
}
return files
}
func readFile(string filePath) []string {
content, err := os.ReadFile(filePath)
if err != nil {
fmt.Println("Error reading file:", err)
return
}
return content
}