package handler import ( "dal-license-server/internal/model" "dal-license-server/internal/service" "encoding/json" "net/http" ) func writeJSON(w http.ResponseWriter, status int, data interface{}) { w.Header().Set("Content-Type", "application/json") w.WriteHeader(status) json.NewEncoder(w).Encode(data) } func writeError(w http.ResponseWriter, status int, code, message string) { writeJSON(w, status, model.ErrorResponse{ Error: model.ErrorDetail{Code: code, Message: message}, }) } func writeLicenseError(w http.ResponseWriter, err error) { if le, ok := err.(*service.LicenseError); ok { resp := model.ErrorResponse{ Error: model.ErrorDetail{Code: le.Code, Message: le.Message, Details: le.Details}, } writeJSON(w, http.StatusBadRequest, resp) return } writeError(w, http.StatusInternalServerError, "INTERNAL_ERROR", "Interna greska servera") } func clientIP(r *http.Request) string { if xff := r.Header.Get("X-Forwarded-For"); xff != "" { return xff } if xri := r.Header.Get("X-Real-IP"); xri != "" { return xri } return r.RemoteAddr }