From 9f8afbd18e5847bdca5abb1cffbb191a66cf0957 Mon Sep 17 00:00:00 2001 From: Kyle Drake Date: Sat, 13 May 2017 18:31:51 -0500 Subject: [PATCH] ability to return api key from api using login --- app/api.rb | 6 ++++++ tests/api_tests.rb | 25 +++++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/app/api.rb b/app/api.rb index 2bd5a152..d3370fa4 100644 --- a/app/api.rb +++ b/app/api.rb @@ -110,6 +110,12 @@ get '/api/info' do end end +get '/api/key' do + require_api_credentials + current_site.generate_api_key! if current_site.api_key.blank? + api_success api_key: current_site.api_key +end + def api_info_for(site) { info: { diff --git a/tests/api_tests.rb b/tests/api_tests.rb index d878de43..5e894c11 100644 --- a/tests/api_tests.rb +++ b/tests/api_tests.rb @@ -197,6 +197,31 @@ describe 'api delete' do end end +describe 'api key' do + it 'generates new key with valid login' do + create_site + basic_authorize @user, @pass + get '/api/key' + res[:result].must_equal 'success' + res[:api_key].must_equal @site.reload.api_key + end + + it 'returns existing key' do + create_site + @site.generate_api_key! + basic_authorize @user, @pass + get '/api/key' + res[:api_key].must_equal @site.api_key + end + + it 'fails for bad login' do + create_site + basic_authorize 'zero', 'cool' + get '/api/key' + res[:error_type].must_equal 'invalid_auth' + end +end + describe 'api upload' do it 'fails with no auth' do post '/api/upload'