package fikoyt_json

import (
	"encoding/json"
	"fmt"
	FikoYTMap "server/sistem/fikoyt_map"

	"github.com/gofiber/fiber/v3"
)

func AraIsleyici() fiber.Handler {
	return func(c fiber.Ctx) error {
		var jsonData FikoYTMap.FikoYTMap

		// Öncelikle "req_body" parametresini al
		reqBody := c.FormValue("req_body")

		var err error
		if reqBody != "" {
			err = json.Unmarshal([]byte(reqBody), &jsonData)
		}

		// Eğer req_body yoksa veya parse edilemezse Body'den parse etmeye çalış
		if err != nil || reqBody == "" {
			err = json.Unmarshal(c.Body(), &jsonData)
			if err != nil {
				// Body de bozuksa boş map ata
				jsonData = FikoYTMap.FikoYTMap{}
			}
		}
		fmt.Println(jsonData)
		jsonData.IsleObjectId()
		c.Locals("json", jsonData)

		return c.Next()
	}
}
