REPP: Update ApiDoc

This commit is contained in:
Karl Erik Õunapuu 2021-01-21 09:55:09 +02:00
parent fda58e9a41
commit 454433cf10
No known key found for this signature in database
GPG key ID: C9DD647298A34764
8 changed files with 67 additions and 24 deletions

View file

@ -5,7 +5,7 @@ module Repp
before_action :set_domain, only: %i[index create destroy]
api :GET, '/repp/v1/domains/:domain_name/dnssec'
desc "View all domain's DNSSEC keys"
desc "View specific domain's DNSSEC keys"
def index
dnssec_keys = @domain.dnskeys
data = { dns_keys: dnssec_keys.as_json(only: %i[flags alg protocol public_key]) }
@ -13,7 +13,7 @@ module Repp
end
api :POST, '/repp/v1/domains/:domain_name/dnssec'
desc 'Add new DNSSEC key(s) to domain'
desc 'Create a new DNSSEC key(s) for domain'
param :dns_keys, Array, required: true, desc: 'Array of new DNSSEC keys' do
param :flags, String, required: true, desc: '256 (KSK) or 257 (ZSK)'
param :protocol, String, required: true, desc: 'Key protocol (3)'

View file

@ -6,7 +6,7 @@ module Repp
before_action :set_nameserver, only: %i[destroy]
api :POST, '/repp/v1/domains/:domain_name/nameservers'
desc 'Creates new nameserver for domain'
desc 'Create new nameserver for domain'
param :nameservers, Array, required: true, desc: 'Array of new nameservers' do
param :hostname, String, required: true, desc: 'Nameserver hostname'
param :ipv4, Array, required: false, desc: 'Array of IPv4 values'
@ -24,16 +24,8 @@ module Repp
render_success(data: { domain: { name: @domain.name } })
end
api :PUT, '/repp/v1/domains/:domain/nameservers/:nameserver'
desc 'Modify nameserver for domain'
param :nameserver, Hash, required: true, desc: 'Nameserver parameters' do
param :hostname, String, required: true, desc: 'Nameserver hostname'
param :ipv4, Array, required: false, desc: 'Array of IPv4 values'
param :ipv6, Array, required: false, desc: 'Array of IPv6 values'
end
api :DELETE, '/repp/v1/domains/:domain/nameservers/:nameserver'
desc 'Delete nameserver for domain'
desc 'Delete specific nameserver from domain'
def destroy
nameserver = { nameservers: [{ hostname: params[:id], action: 'rem' }] }
action = Actions::DomainUpdate.new(@domain, nameserver, current_user)

View file

@ -4,6 +4,24 @@ module Repp
class RenewsController < BaseController
before_action :validate_renew_period, only: [:bulk_renew]
before_action :select_renewable_domains, only: [:bulk_renew]
before_action :set_domain, only: [:create]
api :POST, 'repp/v1/domains/:domain_name/renew'
desc 'Renew domain'
param :renew, Hash, required: true, desc: 'Renew parameters' do
param :renew_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'
end
def create
action = Actions::DomainUpdate.new(@domain, renew_params[:renew], current_user)
unless action.call
handle_errors(@domain)
return
end
render_success(data: { domain: { name: @domain.name } })
end
def bulk_renew
renew = run_bulk_renew_task(@domains, bulk_renew_params[:renew_period])
@ -16,6 +34,18 @@ module Repp
private
def set_domain
registrar = current_user.registrar
@domain = Epp::Domain.find_by(registrar: registrar, name: params[:domain_id])
@domain ||= Epp::Domain.find_by!(registrar: registrar, name_puny: params[:domain_id])
@domain
end
def renew_params
params.permit!
end
def validate_renew_period
@epp_errors ||= []
periods = Depp::Domain::PERIODS.map { |p| p[1] }