mirror of
https://github.com/internetee/registry.git
synced 2025-08-05 17:28:18 +02:00
REPP: Add renew exp_date sanity check
This commit is contained in:
parent
016c5e802c
commit
546330b178
7 changed files with 15 additions and 13 deletions
|
@ -72,11 +72,11 @@ module Epp
|
|||
|
||||
def renew
|
||||
authorize! :renew, @domain
|
||||
return handle_errors(@domain) if invalid_expiry_date?
|
||||
|
||||
registrar_id = current_user.registrar.id
|
||||
renew_params = ::Deserializers::Xml::Domain.new(params[:parsed_frame],
|
||||
registrar_id).call
|
||||
|
||||
action = Actions::DomainRenew.new(@domain, renew_params, current_user.registrar)
|
||||
if action.call
|
||||
render_epp_response '/epp/domains/renew'
|
||||
|
@ -228,11 +228,6 @@ module Epp
|
|||
statuses == [::DomainStatus::CLIENT_HOLD]
|
||||
end
|
||||
|
||||
def invalid_expiry_date?
|
||||
@domain.validate_exp_dates(params[:parsed_frame].css('curExpDate').text)
|
||||
@domain.errors[:epp_errors].any?
|
||||
end
|
||||
|
||||
def balance_ok?(operation, period = nil, unit = nil)
|
||||
@domain_pricelist = @domain.pricelist(operation, period.try(:to_i), unit)
|
||||
if @domain_pricelist.try(:price) # checking if price list is not found
|
||||
|
|
|
@ -11,6 +11,7 @@ module Repp
|
|||
param :renew, Hash, required: true, desc: 'Renew parameters' do
|
||||
param :period, Integer, required: true, desc: 'Renew period. Month (m) or year (y)'
|
||||
param :period_unit, String, required: true, desc: 'For how many months or years to renew'
|
||||
param :exp_date, String, required: true, desc: 'Current expiry date for domain'
|
||||
end
|
||||
def create
|
||||
authorize!(:renew, @domain)
|
||||
|
@ -36,7 +37,7 @@ module Repp
|
|||
private
|
||||
|
||||
def renew_params
|
||||
params.permit(:domain_id, renew: %i[period period_unit])
|
||||
params.permit(:domain_id, renew: %i[period period_unit exp_date])
|
||||
end
|
||||
|
||||
def validate_renew_period
|
||||
|
|
|
@ -21,9 +21,9 @@ module Repp
|
|||
desc 'Get a specific domain'
|
||||
def show
|
||||
@domain = Epp::Domain.find_by!(name: params[:id])
|
||||
sponsored = @domain.registrar == current_user.registrar
|
||||
sponsor = @domain.registrar == current_user.registrar
|
||||
render_success(data: { domain: Serializers::Repp::Domain.new(@domain,
|
||||
sponsored: sponsored).to_json })
|
||||
sponsored: sponsor).to_json })
|
||||
end
|
||||
|
||||
api :POST, '/repp/v1/domains'
|
||||
|
|
|
@ -16,11 +16,14 @@ module Actions
|
|||
domain.add_renew_epp_errors
|
||||
false
|
||||
else
|
||||
domain.validate_exp_dates(params[:exp_date])
|
||||
renew
|
||||
end
|
||||
end
|
||||
|
||||
def renew
|
||||
return false if domain.errors[:epp_errors].any?
|
||||
|
||||
task = Domains::BulkRenew::SingleDomainRenew.run(domain: domain,
|
||||
period: params[:period],
|
||||
unit: params[:period_unit],
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue