mirror of
https://github.com/internetee/registry.git
synced 2025-05-17 09:57:23 +02:00
REPP API changes
This commit is contained in:
parent
822b325bc0
commit
ccd34ed4a9
5 changed files with 62 additions and 12 deletions
3
Gemfile
3
Gemfile
|
@ -67,7 +67,8 @@ gem 'deep_cloneable', '~> 2.1.1'
|
||||||
gem 'digidoc_client', '~> 0.2.1'
|
gem 'digidoc_client', '~> 0.2.1'
|
||||||
|
|
||||||
# epp + repp client
|
# epp + repp client
|
||||||
gem 'depp', github: 'domify/depp', ref: '2939cf6a84a115c35cd4f7176a90abdaad0e869f'
|
gem 'depp', github: 'domify/depp', ref: '2a14f5025f4909e0225d5c30ad4cc0ab81629034'
|
||||||
|
# gem 'depp', path: '~/projects/depp'
|
||||||
gem 'epp', '~> 1.4.2', github: 'gitlabeu/epp'
|
gem 'epp', '~> 1.4.2', github: 'gitlabeu/epp'
|
||||||
|
|
||||||
group :development do
|
group :development do
|
||||||
|
|
|
@ -10,8 +10,8 @@ GIT
|
||||||
|
|
||||||
GIT
|
GIT
|
||||||
remote: git://github.com/domify/depp.git
|
remote: git://github.com/domify/depp.git
|
||||||
revision: 2939cf6a84a115c35cd4f7176a90abdaad0e869f
|
revision: 2a14f5025f4909e0225d5c30ad4cc0ab81629034
|
||||||
ref: 2939cf6a84a115c35cd4f7176a90abdaad0e869f
|
ref: 2a14f5025f4909e0225d5c30ad4cc0ab81629034
|
||||||
specs:
|
specs:
|
||||||
depp (0.0.2)
|
depp (0.0.2)
|
||||||
coderay (>= 1.1.0)
|
coderay (>= 1.1.0)
|
||||||
|
|
|
@ -8,7 +8,7 @@ module Repp
|
||||||
end
|
end
|
||||||
|
|
||||||
before do
|
before do
|
||||||
next if Rails.env.test?
|
next if Rails.env.test? || Rails.env.development?
|
||||||
message = 'Certificate mismatch! Cert common name should be:'
|
message = 'Certificate mismatch! Cert common name should be:'
|
||||||
request_name = env['HTTP_SSL_CLIENT_S_DN_CN']
|
request_name = env['HTTP_SSL_CLIENT_S_DN_CN']
|
||||||
|
|
||||||
|
|
|
@ -4,11 +4,22 @@ module Repp
|
||||||
|
|
||||||
resource :domains do
|
resource :domains do
|
||||||
desc 'Return list of domains'
|
desc 'Return list of domains'
|
||||||
|
params do
|
||||||
|
optional :limit, type: Integer, values: (1..20).to_a
|
||||||
|
end
|
||||||
|
|
||||||
get '/' do
|
get '/' do
|
||||||
domains = current_user.registrar.domains.page(params[:page])
|
limit = params[:limit] || 20
|
||||||
|
|
||||||
|
if params[:details] == 'true'
|
||||||
|
domains = current_user.registrar.domains.limit(limit)
|
||||||
|
else
|
||||||
|
domains = current_user.registrar.domains.limit(limit).pluck(:name)
|
||||||
|
end
|
||||||
|
|
||||||
@response = {
|
@response = {
|
||||||
domains: domains,
|
domains: domains,
|
||||||
total_pages: domains.total_pages
|
total_number_of_records: current_user.registrar.domains.count
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -5,25 +5,63 @@ describe Repp::DomainV1 do
|
||||||
create_settings
|
create_settings
|
||||||
@registrar1 = Fabricate(:registrar1)
|
@registrar1 = Fabricate(:registrar1)
|
||||||
@api_user = Fabricate(:gitlab_api_user, registrar: @registrar1)
|
@api_user = Fabricate(:gitlab_api_user, registrar: @registrar1)
|
||||||
|
Fabricate.times(2, :domain, registrar: @api_user.registrar)
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'GET /repp/v1/domains', autodoc: true do
|
describe 'GET /repp/v1/domains', autodoc: true do
|
||||||
it 'returns domains of the current registrar' do
|
it 'returns domains of the current registrar' do
|
||||||
Fabricate.times(2, :domain, registrar: @api_user.registrar)
|
|
||||||
|
|
||||||
get_with_auth '/repp/v1/domains', { page: 1 }, @api_user
|
get_with_auth '/repp/v1/domains', { limit: 1, details: true }, @api_user
|
||||||
response.status.should == 200
|
response.status.should == 200
|
||||||
|
|
||||||
body = JSON.parse(response.body)
|
body = JSON.parse(response.body)
|
||||||
body['total_pages'].should == 1
|
body['total_number_of_records'].should == 2
|
||||||
|
|
||||||
# TODO: Maybe there is a way not to convert from and to json again
|
# TODO: Maybe there is a way not to convert from and to json again
|
||||||
body['domains'].to_json.should == @api_user.reload.registrar.domains.to_json
|
body['domains'].to_json.should == @api_user.reload.registrar.domains.limit(1).to_json
|
||||||
|
|
||||||
log = ApiLog::ReppLog.last
|
log = ApiLog::ReppLog.last
|
||||||
log[:request_path].should == '/repp/v1/domains'
|
log[:request_path].should == '/repp/v1/domains'
|
||||||
log[:request_method].should == 'GET'
|
log[:request_method].should == 'GET'
|
||||||
log[:request_params].should == '{"page":"1"}'
|
log[:request_params].should == '{"limit":1,"details":"true"}'
|
||||||
|
log[:response_code].should == '200'
|
||||||
|
log[:api_user_name].should == 'gitlab'
|
||||||
|
log[:api_user_registrar].should == 'registrar1'
|
||||||
|
log[:ip].should == '127.0.0.1'
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'returns domain names of the current registrar' do
|
||||||
|
|
||||||
|
get_with_auth '/repp/v1/domains', {}, @api_user
|
||||||
|
response.status.should == 200
|
||||||
|
|
||||||
|
body = JSON.parse(response.body)
|
||||||
|
body['total_number_of_records'].should == 2
|
||||||
|
|
||||||
|
# TODO: Maybe there is a way not to convert from and to json again
|
||||||
|
body['domains'].to_json.should == @api_user.reload.registrar.domains.pluck(:name).to_json
|
||||||
|
|
||||||
|
log = ApiLog::ReppLog.last
|
||||||
|
log[:request_path].should == '/repp/v1/domains'
|
||||||
|
log[:request_method].should == 'GET'
|
||||||
|
log[:request_params].should == '{}'
|
||||||
|
log[:response_code].should == '200'
|
||||||
|
log[:api_user_name].should == 'gitlab'
|
||||||
|
log[:api_user_registrar].should == 'registrar1'
|
||||||
|
log[:ip].should == '127.0.0.1'
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'returns an error with invalid parameters in domain index' do
|
||||||
|
get_with_auth '/repp/v1/domains', { limit: 0 }, @api_user
|
||||||
|
response.status.should == 400
|
||||||
|
|
||||||
|
body = JSON.parse(response.body)
|
||||||
|
body['error'].should == 'limit does not have a valid value'
|
||||||
|
|
||||||
|
log = ApiLog::ReppLog.last
|
||||||
|
log[:request_path].should == '/repp/v1/domains'
|
||||||
|
log[:request_method].should == 'GET'
|
||||||
|
log[:request_params].should == '{}'
|
||||||
log[:response_code].should == '200'
|
log[:response_code].should == '200'
|
||||||
log[:api_user_name].should == 'gitlab'
|
log[:api_user_name].should == 'gitlab'
|
||||||
log[:api_user_registrar].should == 'registrar1'
|
log[:api_user_registrar].should == 'registrar1'
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue