package uyar_admin

import (
	"io/ioutil"
	"net/http"
	admin_kullanicilar "server/apps/uyar_dokum/uyar/uyar_admin/kullanicilar"
	kokn8n "server/apps/uyar_dokum/uyar/uyar_admin/n8n"

	"github.com/gofiber/fiber/v3"
)

func Init(app *fiber.App, Uyar fiber.Router) {
	Api := Uyar.Group("/admin")
	// Api_v1.Use(func(c fiber.Ctx) error {
	// 	return c.JSON(c.GetReqHeaders())
	// })
	///
	// uyar_sockets.Init(app, Api_v1)
	admin_kullanicilar.Init(app, Api)
	kokn8n.Kokn8nRouting(app, Api)

	Api.Get("/everything", func(c fiber.Ctx) error {
		// Angular'dan gelen query parametrelerini Everything'e geçir
		query := c.Context().QueryArgs().String() // ?search=*.nc&c=5 gibi tüm query string
		everythingURL := "http://85.105.225.163:7575/?" + query

		// HTTP GET isteği Everything server'a
		resp, err := http.Get(everythingURL)
		if err != nil {
			return c.Status(fiber.StatusBadGateway).JSON(fiber.Map{
				"error":  "Everything server unreachable",
				"detail": err.Error(),
			})
		}
		defer resp.Body.Close()

		body, _ := ioutil.ReadAll(resp.Body)
		// Everything'den gelen içeriği direk döndür
		return c.Send(body)
	})

	Api.Get("/everything/file/*", func(c fiber.Ctx) error {
		// frontend'den gelen dosya yolu
		filePath := c.Params("*") // C:/Users/user/Desktop/KIRMIZI/KIRMIZI.NC

		// Everything server URL'si
		everythingURL := "http://85.105.225.163:7575/" + filePath

		// HTTP GET isteği Everything server'a
		resp, err := http.Get(everythingURL)
		if err != nil {
			return c.Status(fiber.StatusBadGateway).JSON(fiber.Map{
				"error":  "Everything server unreachable",
				"detail": err.Error(),
			})
		}
		defer resp.Body.Close()

		// Header’ları ilet
		c.Set("Content-Type", resp.Header.Get("Content-Type"))
		c.Set("Content-Disposition", resp.Header.Get("Content-Disposition"))

		// Body'yi gönder
		body, _ := ioutil.ReadAll(resp.Body)
		return c.Send(body)
	})
}
