39 lines
823 B
Ruby
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
|