diff --git a/.gitignore b/.gitignore index 77733e941..02b1bdcec 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ *.log *.log.* config.yml.bak +data/* diff --git a/app.rb b/app.rb index 5826a5d0c..a6209d2fa 100644 --- a/app.rb +++ b/app.rb @@ -13,25 +13,28 @@ require 'dm-migrations' -DataMapper.setup(:default, 'sqlite3:data.db') +DataMapper.setup(:default, 'sqlite3:data/data.db') -Dir.glob(File.join(File.dirname(File.absolute_path(__FILE__)),'lib','**','*.rb')).each do |file| - require file -end -class TestInstance - include DataMapper::Resource - property :id, String, key: true - property :url, String - property :name, String - property :created_at, DateTime +['lib', 'models'].each do |dir| + Dir.glob(File.join(File.dirname(File.absolute_path(__FILE__)),dir, '**','*.rb')).each do |file| + require file + end end +#TODO clean up database stuff + DataMapper.finalize # automatically create the post table -TestInstance.auto_migrate! -TestInstance.auto_upgrade! +TestingInstance.auto_migrate! +TestingInstance.auto_upgrade! + +SequenceResult.auto_migrate! +SequenceResult.auto_upgrade! + +TestResult.auto_migrate! +TestResult.auto_upgrade! enable :sessions set :session_secret, SecureRandom.uuid @@ -59,27 +62,40 @@ class TestInstance end get '/instance/:id/?' do - @instance = TestInstance.get(params[:id]) + @instance = TestingInstance.get(params[:id]) erb :details end get '/instance/:id/2/?' do - @instance = TestInstance.get(params[:id]) + @instance = TestingInstance.get(params[:id]) erb :details2 end get '/instance/:id/3/?' do - @instance = TestInstance.get(params[:id]) + @instance = TestingInstance.get(params[:id]) erb :details3 end post '/instance/?' do id = SecureRandom.uuid - @instance = TestInstance.new(id: id, created_at: DateTime.now, url: params['fhir_server'], name: params['name']) + @instance = TestingInstance.new(id: id, created_at: DateTime.now, url: params['fhir_server'], name: params['name']) @instance.save redirect "/instance/#{id}/" end +post '/instance/:id/run_test/' do + +end + +get '/instance/:id/redirect/:key/' do + + +end + +get '/instance/:id/launch/:key/' do + + +end # This is the primary endpoint of the app and the OAuth2 redirect URL get '/app' do diff --git a/data/.gitignore b/data/.gitignore new file mode 100644 index 000000000..f935021a8 --- /dev/null +++ b/data/.gitignore @@ -0,0 +1 @@ +!.gitignore diff --git a/models/SequenceResult.rb b/models/SequenceResult.rb new file mode 100644 index 000000000..80df9c220 --- /dev/null +++ b/models/SequenceResult.rb @@ -0,0 +1,11 @@ +class SequenceResult + include DataMapper::Resource + property :id, Serial + property :result, String #pass fail skip + property :passed_count, Integer + property :failed_count, Integer + + has n, :test_results + belongs_to :testing_instance +end + diff --git a/models/TestResult.rb b/models/TestResult.rb new file mode 100644 index 000000000..24fd62a74 --- /dev/null +++ b/models/TestResult.rb @@ -0,0 +1,8 @@ +class TestResult + include DataMapper::Resource + property :id, Serial + property :result, String #pass fail skip + + belongs_to :sequence_result +end + diff --git a/models/TestingInstance.rb b/models/TestingInstance.rb new file mode 100644 index 000000000..a7fa6b001 --- /dev/null +++ b/models/TestingInstance.rb @@ -0,0 +1,12 @@ +class TestingInstance + include DataMapper::Resource + property :id, String, key: true + property :url, String + property :name, String + property :redirect_key, String + property :launch_key, String + property :created_at, DateTime + + has n, :sequence_results +end +