1
0
grillo-ruby-neo4j-challenge/app/controllers/metrics_controller.rb

39 lines
823 B
Ruby

class MetricsController < ActionController::API
# POST /metric/:key
def create
key = params[:key]
value = JSON.parse(request.body.read)["value"]
metric = Metric.find_or_create_by(key: key)
metric.value = value
if metric.save()
render json: {}
else
render json: { error: "Unable to save" }, status: :unprocessable_entity
end
end
# GET /metric/
def index
returnable = []
Metric.all.each do |metric|
returnable << MetricOutput.new(metric.key, metric.value)
end
render json: returnable.to_json
end
# DELETE /metric/:key
def delete
key = params[:key]
metric = Metric.find_by(key: key)
if metric.destroy
render json: {}
else
render json: { error: "Unable to delete" }, status: :unprocessable_entity
end
end
end