Registrant confirms: Poll domain change application

This commit is contained in:
Karl Erik Õunapuu 2020-11-09 16:24:25 +02:00
parent a182dfb3ba
commit 09389ea662
No known key found for this signature in database
GPG key ID: C9DD647298A34764
2 changed files with 57 additions and 2 deletions

View file

@ -0,0 +1,55 @@
require 'serializers/registrant_api/domain'
module Api
module V1
module Registrant
class ConfirmsController < ::Api::V1::Registrant::BaseController
skip_before_action :authenticate, :set_paper_trail_whodunnit
before_action :set_domain, only: %i[index update]
before_action :verify_updateable, only: %i[index update]
def index
render json: {
domain_name: @domain.name,
current_registrant: serialized_registrant(@domain.registrant),
new_registrant: serialized_registrant(@domain.pending_registrant)
}
end
def update
end
private
def serialized_registrant(registrant)
{
name: registrant.try(:name),
ident: registrant.try(:ident),
country: registrant.try(:ident_country_code)
}
end
def confirmation_params
params do |p|
p.require(:name)
p.require(:token)
end
end
def set_domain
@domain = Domain.find_by(name: confirmation_params[:name])
return if @domain
render json: { error: 'Domain not found' }, status: :not_found
end
def verify_updateable
return if @domain.registrant_update_confirmable?(confirmation_params[:token])
render json: { error: 'Application expired or not found' },
status: :unauthorized
end
end
end
end
end

View file

@ -56,12 +56,12 @@ Rails.application.routes.draw do
namespace :v1 do namespace :v1 do
namespace :registrant do namespace :registrant do
post 'auth/eid', to: 'auth#eid' post 'auth/eid', to: 'auth#eid'
get 'confirms/:name/:token', to: 'confirms#index', constraints: { name: /[^\/]+/ }
post 'confirms/:name/:token', to: 'confirms#update', constraints: { name: /[^\/]+/ }
resources :domains, only: %i[index show], param: :uuid do resources :domains, only: %i[index show], param: :uuid do
resource :registry_lock, only: %i[create destroy] resource :registry_lock, only: %i[create destroy]
end end
resources :contacts, only: %i[index show update], param: :uuid resources :contacts, only: %i[index show update], param: :uuid
resources :companies, only: %i[index]
end end
resources :auctions, only: %i[index show update], param: :uuid resources :auctions, only: %i[index show update], param: :uuid