mirror of
https://github.com/internetee/registry.git
synced 2025-07-03 09:43:36 +02:00
Rake task for making api log schema
This commit is contained in:
parent
d5a824064e
commit
7b920cac2f
6 changed files with 70 additions and 13 deletions
|
@ -9,7 +9,7 @@ module Epp::Common
|
||||||
included do
|
included do
|
||||||
protect_from_forgery with: :null_session
|
protect_from_forgery with: :null_session
|
||||||
before_action :validate_request, only: [:proxy]
|
before_action :validate_request, only: [:proxy]
|
||||||
after_action :log_to_epp_log
|
after_action :write_to_epp_log
|
||||||
|
|
||||||
helper_method :current_epp_user
|
helper_method :current_epp_user
|
||||||
end
|
end
|
||||||
|
@ -114,15 +114,20 @@ module Epp::Common
|
||||||
handle_errors and return unless send(validation_method)
|
handle_errors and return unless send(validation_method)
|
||||||
end
|
end
|
||||||
|
|
||||||
def log_to_epp_log
|
def render_epp_response(*args)
|
||||||
|
@response = render_to_string(*args)
|
||||||
|
render xml: @response
|
||||||
|
end
|
||||||
|
|
||||||
|
def write_to_epp_log
|
||||||
ApiLog::EppLog.create!({
|
ApiLog::EppLog.create!({
|
||||||
request: params[:frame],
|
request: params[:frame],
|
||||||
request_command: params[:command],
|
request_command: params[:command],
|
||||||
request_successful: epp_errors.empty?,
|
request_successful: epp_errors.empty?,
|
||||||
request_object: OBJECT_TYPES[params_hash['epp']['xmlns:ns2']],
|
request_object: OBJECT_TYPES[params_hash['epp']['xmlns:ns2']],
|
||||||
response: @response,
|
response: @response,
|
||||||
api_user_name: current_epp_user.try(:to_s),
|
api_user_name: @epp_user.try(:to_s) || current_epp_user.try(:to_s),
|
||||||
api_user_registrar: current_epp_user.try(:registrar).try(:to_s)
|
api_user_registrar: @epp_user.try(:registrar).try(:to_s) || current_epp_user.try(:registrar).try(:to_s)
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -5,7 +5,7 @@ class Epp::SessionsController < ApplicationController
|
||||||
private
|
private
|
||||||
|
|
||||||
def hello
|
def hello
|
||||||
render 'greeting'
|
render_epp_response('greeting')
|
||||||
end
|
end
|
||||||
|
|
||||||
def login
|
def login
|
||||||
|
@ -13,17 +13,18 @@ class Epp::SessionsController < ApplicationController
|
||||||
|
|
||||||
if @epp_user.try(:active)
|
if @epp_user.try(:active)
|
||||||
epp_session[:epp_user_id] = @epp_user.id
|
epp_session[:epp_user_id] = @epp_user.id
|
||||||
render 'login_success'
|
render_epp_response('login_success')
|
||||||
else
|
else
|
||||||
response.headers['X-EPP-Returncode'] = '2200'
|
response.headers['X-EPP-Returncode'] = '2200'
|
||||||
render 'login_fail'
|
render_epp_response('login_fail')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def logout
|
def logout
|
||||||
|
@epp_user = current_epp_user # cache current_epp_user for logging
|
||||||
epp_session[:epp_user_id] = nil
|
epp_session[:epp_user_id] = nil
|
||||||
response.headers['X-EPP-Returncode'] = '1500'
|
response.headers['X-EPP-Returncode'] = '1500'
|
||||||
render 'logout'
|
render_epp_response('logout')
|
||||||
end
|
end
|
||||||
|
|
||||||
### HELPER METHODS ###
|
### HELPER METHODS ###
|
||||||
|
|
|
@ -15,6 +15,7 @@ module Epp::PollHelper
|
||||||
if @message.attached_obj_type == 'Keyrelay'
|
if @message.attached_obj_type == 'Keyrelay'
|
||||||
@response = render_to_string('epp/poll/poll_keyrelay')
|
@response = render_to_string('epp/poll/poll_keyrelay')
|
||||||
render xml: @response
|
render xml: @response
|
||||||
|
# render 'epp/poll/poll_keyrelay'
|
||||||
else
|
else
|
||||||
render 'epp/poll/poll_req'
|
render 'epp/poll/poll_req'
|
||||||
end
|
end
|
||||||
|
|
43
db/api_log_schema.rb
Normal file
43
db/api_log_schema.rb
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
# encoding: UTF-8
|
||||||
|
# This file is auto-generated from the current state of the database. Instead
|
||||||
|
# of editing this file, please use the migrations feature of Active Record to
|
||||||
|
# incrementally modify your database, and then regenerate this schema definition.
|
||||||
|
#
|
||||||
|
# Note that this schema.rb definition is the authoritative source for your
|
||||||
|
# database schema. If you need to create the application database on another
|
||||||
|
# system, you should be using db:schema:load, not running all the migrations
|
||||||
|
# from scratch. The latter is a flawed and unsustainable approach (the more migrations
|
||||||
|
# you'll amass, the slower it'll run and the greater likelihood for issues).
|
||||||
|
#
|
||||||
|
# It's strongly recommended that you check this file into your version control system.
|
||||||
|
|
||||||
|
ActiveRecord::Schema.define(version: 0) do
|
||||||
|
|
||||||
|
# These are extensions that must be enabled in order to support this database
|
||||||
|
enable_extension "plpgsql"
|
||||||
|
|
||||||
|
create_table "epp_logs", force: true do |t|
|
||||||
|
t.text "request"
|
||||||
|
t.text "response"
|
||||||
|
t.string "request_command"
|
||||||
|
t.string "request_object"
|
||||||
|
t.string "request_successful"
|
||||||
|
t.string "api_user_name"
|
||||||
|
t.string "api_user_registrar"
|
||||||
|
t.datetime "created_at"
|
||||||
|
t.datetime "updated_at"
|
||||||
|
end
|
||||||
|
|
||||||
|
create_table "repp_logs", force: true do |t|
|
||||||
|
t.text "request"
|
||||||
|
t.text "response"
|
||||||
|
t.string "request_command"
|
||||||
|
t.string "request_object"
|
||||||
|
t.string "request_successful"
|
||||||
|
t.string "api_user_name"
|
||||||
|
t.string "api_user_registrar"
|
||||||
|
t.datetime "created_at"
|
||||||
|
t.datetime "updated_at"
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
|
@ -41,7 +41,6 @@ User.where(
|
||||||
username: 'user1',
|
username: 'user1',
|
||||||
password: 'test1',
|
password: 'test1',
|
||||||
email: 'user1@example.ee',
|
email: 'user1@example.ee',
|
||||||
admin: true,
|
|
||||||
identity_code: '37810013855',
|
identity_code: '37810013855',
|
||||||
country: Country.where(name: 'Estonia').first
|
country: Country.where(name: 'Estonia').first
|
||||||
).first_or_create
|
).first_or_create
|
||||||
|
@ -50,9 +49,7 @@ User.where(
|
||||||
username: 'user2',
|
username: 'user2',
|
||||||
password: 'test2',
|
password: 'test2',
|
||||||
email: 'user2@example.ee',
|
email: 'user2@example.ee',
|
||||||
admin: false,
|
|
||||||
identity_code: '37810010085',
|
identity_code: '37810010085',
|
||||||
registrar_id: registrar1.id,
|
|
||||||
country: Country.where(name: 'Estonia').first
|
country: Country.where(name: 'Estonia').first
|
||||||
).first_or_create
|
).first_or_create
|
||||||
|
|
||||||
|
@ -60,9 +57,7 @@ User.where(
|
||||||
username: 'user3',
|
username: 'user3',
|
||||||
password: 'test3',
|
password: 'test3',
|
||||||
email: 'user3@example.ee',
|
email: 'user3@example.ee',
|
||||||
admin: false,
|
|
||||||
identity_code: '37810010727',
|
identity_code: '37810010727',
|
||||||
registrar_id: registrar2.id,
|
|
||||||
country: Country.where(name: 'Estonia').first
|
country: Country.where(name: 'Estonia').first
|
||||||
).first_or_create
|
).first_or_create
|
||||||
|
|
||||||
|
|
12
lib/tasks/api_log.rake
Normal file
12
lib/tasks/api_log.rake
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
namespace :api_log do
|
||||||
|
namespace :schema do
|
||||||
|
# desc 'Dump additional database schema'
|
||||||
|
task :dump => [:environment] do
|
||||||
|
filename = "#{Rails.root}/db/api_log_schema.rb"
|
||||||
|
File.open(filename, 'w:utf-8') do |file|
|
||||||
|
ActiveRecord::Base.establish_connection("api_log_#{Rails.env}")
|
||||||
|
ActiveRecord::SchemaDumper.dump(ActiveRecord::Base.connection, file)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Add table
Add a link
Reference in a new issue