package server

import (
	

	
	
	
	
)

/*
ErrorHandler utilizes a global GoFiber error handler and returns a Liman type error output

https://docs.gofiber.io/guide/error-handling/#custom-error-handler
*/
var ErrorHandler = func( *fiber.Ctx,  error) error {
	 := fiber.StatusInternalServerError
	if ,  := .(*fiber.Error);  {
		 = .Code
	}

	var  *fiber.Map
	if  == fiber.StatusOK {
		 = &fiber.Map{
			"status":  ,
			"message": .Error(),
		}
	} else {
		if  >= fiber.StatusInternalServerError {
			 := helpers.GetFormData()

			for  := range  {
				if strings.Contains(strings.ToLower(), "password") || strings.Contains(strings.ToLower(), "token") {
					[] = ""
				}
			}

			logger.Sugar().WithOptions(zap.WithCaller(false)).Errorw(
				"recover middleware catch",
				"status", ,
				"message", .Error(),
				"request_details", ,
			)
		}

		 = &fiber.Map{
			"status":  ,
			"message": .Error(),
		}
	}

	// TODO: fix that 201 issue on new versions for liman
	// maalesef :(
	return .Status(201).JSON()
}