module CommonHelper
Public Instance Methods
add_custom_params_to_logger()
click to toggle source
# File lib/common_helper.rb, line 31 def add_custom_params_to_logger Rails.logger.add_metadata(custom_meta_data_log) if Rails.logger.respond_to?(:add_metadata) redis_push(Rails.logger.instance_variable_get("@mongo_record").to_json) end
common_params_meta_log()
click to toggle source
# File lib/common_helper.rb, line 67 def common_params_meta_log ll = { referer_service: params[:referer_service], jwt_cookie_hash: jwt_header_token, property: current_micro_service_name, referrer_property: params[:referer_service] } if !params[:referer_service] if request.referer && (URI(request.referer).path=="" || URI(request.referer).path=="/") if request.cookies['REARCHID']=="rearch" ll[:referrer_property] = "Search Page" elsif request.cookies['REARCHID']=="nonrearch" ll[:referrer_property] = "Old Home Page" end elsif request.referer && URI(request.referer).path.start_with?('/learn') ll[:referrer_property] = "Learn-Frontend" elsif request.referer && URI(request.referer).path.start_with?('/profile') ll[:referrer_property] = "Profile-Frontend" elsif request.referer && request.referer.match(/practice\/solve\//) ll[:referrer_property] = "Practice-Frontend" elsif request.referer && request.referer.match(/test\//) ll[:referrer_property] = "Test-Frontend" elsif request.referer && URI(request.referer).path.start_with?('/ask') ll[:referrer_property] = "Ask-Frontend" elsif request.referer && URI(request.referer).path.start_with?('/rankup') ll[:referrer_property] = "Rankup-Frontend" elsif request.referer && URI(request.referer).path.start_with?('/jump') ll[:referrer_property] = "Jump-Frontend" elsif request.referer && URI(request.referer).path.start_with?('/exams') ll[:referrer_property] = "Exams-Wordpress" elsif request.referer && URI(request.referer).path.start_with?('/news') ll[:referrer_property] = "News-Wordpress" end end ll end
current_micro_service_name()
click to toggle source
# File lib/common_helper.rb, line 2 def current_micro_service_name @_current_micro_service_name ||= Rails.configuration.database_configuration[Rails.env]['mongodb_logger']['application_name'] end
custom_meta_data_log()
click to toggle source
# File lib/common_helper.rb, line 104 def custom_meta_data_log user_meta_log.merge(user_agent_meta_log).merge(custom_params_meta_log).merge(common_params_meta_log) end
custom_params_meta_log()
click to toggle source
# File lib/common_helper.rb, line 63 def custom_params_meta_log {c_source: params[:C_source], c_id: params[:C_id]} end
kafka_db_log_to_same_topic()
click to toggle source
# File lib/common_helper.rb, line 42 def kafka_db_log_to_same_topic custom_log_data = self.as_json db_name = self.class.name.split("::").map(&:downcase).join("-") topic_name = "#{db_name}-db-#{Rails.env}" redis_format_data = {class: "TestAppDbKafkaLogWorker", args: [custom_log_data, topic_name], retry: true, queue: "logs", jid: SecureRandom.hex(12), created_at: Time.zone.now.to_i, enqueued_at: Time.zone.now.to_i} redis_log.lpush(redis_queue_name, redis_format_data.to_json) end
kafka_log()
click to toggle source
# File lib/common_helper.rb, line 108 def kafka_log @kafka_log ||= Kafka.new(kafka_log_end_points, logger: Rails.logger, client_id: "#{current_micro_service_name}-#{Rails.env}") end
kafka_log_producer()
click to toggle source
# File lib/common_helper.rb, line 112 def kafka_log_producer @kafka_producer ||= kafka_log.async_producer end
redis_data(key, value)
click to toggle source
# File lib/common_helper.rb, line 23 def redis_data(key, value) {key: key, value: value} end
redis_get(key)
click to toggle source
# File lib/common_helper.rb, line 19 def redis_get(key) (JSON.parse($redis.get(key)) || {}) rescue {} end
redis_process()
click to toggle source
# File lib/common_helper.rb, line 27 def redis_process redis_set(_batch_events) end
redis_push(custom_log_data)
click to toggle source
# File lib/common_helper.rb, line 36 def redis_push(custom_log_data) topic_name = "#{current_micro_service_name}-log-#{Rails.env}" redis_format_data = {class: "KafkaMicroServicesLogs", args: [custom_log_data, topic_name], retry: true, queue: "logs", jid: SecureRandom.hex(12), created_at: Time.zone.now.to_i, enqueued_at: Time.zone.now.to_i} redis_log.lpush(redis_queue_name, redis_format_data.to_json) end
redis_queue_name()
click to toggle source
# File lib/common_helper.rb, line 50 def redis_queue_name return "queue:logs" if Rails.env.production? return "test-app:queue:logs" end
redis_set(batch_set)
click to toggle source
# File lib/common_helper.rb, line 15 def redis_set(batch_set) batch_set.each {|key, value| d} end
render_error(msg, status)
click to toggle source
# File lib/common_helper.rb, line 11 def render_error(msg, status) render json: {:error => msg, :status => status}, :status => status end
required_organization()
click to toggle source
# File lib/common_helper.rb, line 6 def required_organization @organization ||= Organization.find_by(namespace: params[:namespace], language: params[:language]) render_error("Organization or Language not found", 404) if @organization.nil? end
user_agent_meta_log()
click to toggle source
# File lib/common_helper.rb, line 55 def user_agent_meta_log ua = DeviceDetector.new(request.user_agent) device_info = [:name, :full_version, :user_agent, :os_name, :os_full_version, :device_name, :device_brand, :device_type, :known?, :bot?, :bot_name] info_data = {url: request.url, referer: request.referer} ua.methods.each {|c| info_data[c] = ua.__send__(c) if device_info.include?(c) } info_data end
user_meta_log()
click to toggle source
# File lib/common_helper.rb, line 116 def user_meta_log return {} unless current_ms_user user_meta_data = {} user_meta_data[:user_id] = current_ms_user.id user_meta_data[:email] = current_ms_user.email user_meta_data end