func Reply()

in fleet-argocd-plugin/main.go [88:128]


func Reply(w http.ResponseWriter, r *http.Request) {
	// Decode incoming plugin request.
	var request PluginRequest
	err := json.NewDecoder(r.Body).Decode(&request)
	if err != nil {
		http.Error(w, err.Error(), http.StatusBadRequest)
		return
	}
	// Validate parameters.
	projectNum := request.Input.Parameters.FleetProjectNumber
	if projectNum == "" {
		http.Error(w, "Missing required parameter FleetProjectNumber", http.StatusBadRequest)
		return
	}
	if projectNum != fleetSync.ProjectNum {
		http.Error(w, "Invalid fleetProjectNumber in request, doesn't match FLEET_PROJECT_NUMBER specified in the Fleet plugin", http.StatusBadRequest)
		return
	}
	scopeID := request.Input.Parameters.ScopeID
	res, err := fleetSync.PluginResults(context.Background(), scopeID)
	if err != nil {
		fmt.Printf("Error rendering result: %v\n", err)
		http.Error(w, "Error rendering result", http.StatusInternalServerError)
	}
	// Encode plugin response.
	response := PluginResponse{
		Output{
			Parameters: res,
		},
	}
	jsonData, err := json.Marshal(response)
	if err != nil {
		http.Error(w, err.Error(), http.StatusInternalServerError)
		return
	}

	w.Header().Set("Content-Type", "application/json")
	w.Write(jsonData)
	fmt.Printf("%+v\n", response)
	fmt.Println("-------------------------------------------")
}