Files
Dena/lib/tasks/init_order.rake
2026-08-13 19:50:53 +03:30

62 lines
2.5 KiB
Ruby

namespace :init_order do
desc 'initalizing orders for testing'
task :fire, %i[order_count member_count] => [:environment] do |_t, args|
include ::Bench::Helpers
raise 'please set config' if args[:order_count].blank? || args[:member_count].blank?
my_config = { injector: 'dummy', number: args[:order_count].to_i, step: 100, markets: 'btcusd',
currencies: 'btc,usd', min_volume: 0.001, max_volume: 0.005 }
memberes = ::Bench::Factories.create_list(:member, args[:member_count].to_i)
@currencies = ::Currency.where(id: my_config[:currencies].split(',').map(&:squish).reject(&:blank?))
raise 'check currencies' unless @currencies.present?
raise 'check members' unless memberes.present?
memberes.map(&method(:become_billionaire))
buy_config = my_config.merge({ min_price: 19_000, max_price: 20_000 })
buy_injector = ::Bench::Injectors.initialize_injector(buy_config)
(1..my_config[:number]).each do |_i|
my_create_order(buy_injector.construct_order(memberes, 'OrderBid'))
end
sell_config = my_config.merge({ min_price: 50_000, max_price: 51_000 })
sell_injector = ::Bench::Injectors.initialize_injector(sell_config)
(1..my_config[:number]).each do |_i|
my_create_order(sell_injector.construct_order(memberes, 'OrderAsk'))
end
end
task :fire_token => [:environment] do
raise 'secretFile is not existed' unless File.exist?("#{Rails.root}/config/secrets/rsa-key")
secret_file = File.read("#{Rails.root}/config/secrets/rsa-key")
puts secret_file
raise 'secretFile is not existed' unless File.exist?("#{Rails.root}/config/secrets/rsa-key.pub")
public_file = File.read("#{Rails.root}/config/secrets/rsa-key.pub")
puts public_file
token_file = "#{Rails.root}/public/member_jwt_token.csv"
JWT_ALGORITHM = 'RS256'
ENCODED_PRIVATE_KEY = Base64.urlsafe_encode64(secret_file)
ENCODED_PUBLIC_KEY = Base64.urlsafe_encode64(public_file)
result = []
Member.all.each do |member|
payload = { uid: member.uid, email: member.email, level: member.level,
role: member.role, state: "active", aud: "peatio", sub: "session",
jti: SecureRandom.uuid }
token = JWT.encode(payload, OpenSSL::PKey.read(Base64.urlsafe_decode64(ENCODED_PRIVATE_KEY)), JWT_ALGORITHM)
puts [member.uid, member.email, token]
result << [member.uid.to_s, member.email.to_s, token.to_s]
end
CSV.open(token_file, 'w', write_headers: true) do |csv|
result.each do |res|
csv << res
end
puts 'FINISHED'
end
end
end