feat: toggle api service endpoint

This commit is contained in:
2025-06-03 00:04:36 +02:00
parent b42da50306
commit 3bf08c5933

View File

@ -283,3 +283,36 @@ func (h *AdminHandler) UpdateApiService(w http.ResponseWriter, r *http.Request)
web.Error(w, "failed to send updated api service", http.StatusInternalServerError)
}
}
func (h *AdminHandler) ToggleApiService(w http.ResponseWriter, r *http.Request) {
var err error
serviceId := chi.URLParam(r, "id")
parsed, err := uuid.Parse(serviceId)
if err != nil {
web.Error(w, "provided service id is not valid", http.StatusBadRequest)
return
}
service, err := h.repo.GetApiServiceId(r.Context(), parsed)
if err != nil {
web.Error(w, "service with provided id not found", http.StatusNotFound)
return
}
if service.IsActive {
log.Println("INFO: Service is active. Deactivating...")
err = h.repo.DeactivateApiService(r.Context(), service.ClientID)
} else {
log.Println("INFO: Service is inactive. Activating...")
err = h.repo.ActivateApiService(r.Context(), service.ClientID)
}
if err != nil {
log.Printf("ERR: Failed to toggle api service (cid: %s): %v\n", service.ClientID, err)
web.Error(w, "failed to toggle api service", http.StatusInternalServerError)
return
}
w.WriteHeader(http.StatusOK)
}