mirror of
https://github.com/fspc/bike-database.git
synced 2025-04-04 10:03:22 -04:00
33 lines
945 B
Ruby
33 lines
945 B
Ruby
class BikeIndexLogger
|
|
include Sidekiq::Worker
|
|
def perform(bike_id)
|
|
bike = Bike.find(bike_id)
|
|
|
|
conn = Faraday.new(:url => "#{ENV['BIKE_INDEX_URL']}") do |faraday|
|
|
faraday.request :url_encoded
|
|
faraday.response :logger
|
|
faraday.adapter Faraday.default_adapter
|
|
end
|
|
|
|
response = conn.post do |req|
|
|
req.url "/api/v2/bikes?access_token=#{ENV['BIKE_INDEX_TOKEN']}"
|
|
req.headers['Content-Type'] = 'application/json'
|
|
req.body = BikeIndexLogger.create_bike_index_bike(bike)
|
|
end
|
|
|
|
bike.update_attribute :bike_index_id, JSON.parse(response.body)['bike']['id'] if response.status == 201
|
|
end
|
|
|
|
def self.create_bike_index_bike(bike)
|
|
{
|
|
serial: bike.serial_number,
|
|
manufacturer: bike.brand,
|
|
owner_email: ENV["OWNER_EMAIL"],
|
|
color: bike.color,
|
|
is_for_sale: bike.purpose != "freecyclery",
|
|
frame_model: bike.model,
|
|
no_notify: true
|
|
}.to_json
|
|
end
|
|
end
|