mirror of
https://github.com/Eising/kipketer.git
synced 2024-05-11 05:55:17 +00:00
64 lines
1.7 KiB
Ruby
64 lines
1.7 KiB
Ruby
class Hastighedstest < Sinatra::Base
|
|
|
|
# @!group REST API
|
|
|
|
# @method api_tests
|
|
# Returns all tests, default formatted in JSON
|
|
get '/api/tests' do
|
|
data = Tests.select(:id, :crid, :customer, :location, :timestamp, :deadline, :rfs, :deleted).all
|
|
format_response(data, request.accept)
|
|
end
|
|
|
|
# @method api_test_id
|
|
# returns a given test in JSON
|
|
get '/api/test/:id' do
|
|
test = Tests.where(:id => params[:id])
|
|
if test.count == 0
|
|
halt(404)
|
|
else
|
|
data = test.first.to_hash
|
|
data[:template_fields] = JSON.parse(data[:template_fields])
|
|
format_response(data, request.accept)
|
|
end
|
|
end
|
|
|
|
# @method api_test_crid
|
|
# filters tests by CRID
|
|
get '/api/test/crid/:crid' do
|
|
# Method to get test by CRID
|
|
args = { :crid => params[:crid] }
|
|
if params.has_key? "rfs"
|
|
if params[:rfs] =~ /^(1|true)$/
|
|
args[:rfs] = true
|
|
elsif params[:rfs] =~ /^(0|false)$/
|
|
args[:rfs] = nil
|
|
end
|
|
end
|
|
if params.has_key? "deleted"
|
|
if params[:deleted] =~ /^(1|true)$/
|
|
args[:deleted] = true
|
|
elsif params[:deleted] =~ /^(0|false)$/
|
|
args[:deleted] = nil
|
|
end
|
|
|
|
end
|
|
|
|
test = Tests.where(args)
|
|
if test.count == 0
|
|
halt(404)
|
|
else
|
|
response = []
|
|
data = test.all
|
|
data.each do |resp|
|
|
tresp = resp.to_hash
|
|
tresp[:template_fields] = JSON.parse(tresp[:template_fields])
|
|
response << tresp
|
|
end
|
|
format_response(response, request.accept)
|
|
end
|
|
end
|
|
|
|
|
|
|
|
end
|