package handler import ( "dal-license-server/internal/model" "dal-license-server/internal/service" "encoding/json" "net/http" ) type ClientHandler struct { activation *service.ActivationService } func NewClientHandler(activation *service.ActivationService) *ClientHandler { return &ClientHandler{activation: activation} } func (h *ClientHandler) Activate(w http.ResponseWriter, r *http.Request) { var req model.ActivateRequest if err := json.NewDecoder(r.Body).Decode(&req); err != nil { writeError(w, http.StatusBadRequest, "INVALID_REQUEST", "Neispravan zahtev") return } if req.LicenseKey == "" || req.MachineFingerprint == "" { writeError(w, http.StatusBadRequest, "INVALID_REQUEST", "license_key i machine_fingerprint su obavezni") return } resp, err := h.activation.Activate(&req, clientIP(r)) if err != nil { writeLicenseError(w, err) return } writeJSON(w, http.StatusOK, resp) } func (h *ClientHandler) Deactivate(w http.ResponseWriter, r *http.Request) { var req model.DeactivateRequest if err := json.NewDecoder(r.Body).Decode(&req); err != nil { writeError(w, http.StatusBadRequest, "INVALID_REQUEST", "Neispravan zahtev") return } resp, err := h.activation.Deactivate(&req, clientIP(r)) if err != nil { writeLicenseError(w, err) return } writeJSON(w, http.StatusOK, resp) } func (h *ClientHandler) Validate(w http.ResponseWriter, r *http.Request) { var req model.ValidateRequest if err := json.NewDecoder(r.Body).Decode(&req); err != nil { writeError(w, http.StatusBadRequest, "INVALID_REQUEST", "Neispravan zahtev") return } resp, err := h.activation.Validate(&req, clientIP(r)) if err != nil { writeError(w, http.StatusInternalServerError, "INTERNAL_ERROR", "Greska pri validaciji") return } writeJSON(w, http.StatusOK, resp) }