Files
old-vendor-scheduler-service/app/services/vle/vle_vendor_schedule.rb
2022-03-23 05:44:42 +01:00

47 lines
1.1 KiB
Ruby

# frozen_string_literal: true
require_relative '../log/loggable'
require_relative '../vendors/errors/schedule_publish_error'
module Vle
class VleVendorSchedule
include Log::Loggable
PATH = 'v1/vendor_schedule'
def initialize(vendor, player, schedule)
@vendor = vendor
@player = player
@schedule = schedule
end
def url
Vle::VleSettings.instance.scheduler_url(PATH)
end
def call(access_token)
res = Net::HTTP.post(
url,
{
vendor: @vendor,
player: @player,
schedule: @schedule
}.to_json,
{
"Authorization": "Bearer #{access_token}",
"Content-Type": 'application/json'
}
)
case res
when Net::HTTPSuccess
JSON.parse(res.body).with_indifferent_access
when Net::HTTPUnauthorized
raise Auth::Client::Errors::Unauthorized, 'Unauthorized'
else
logger.error "Error (#{res.code}) scheduling vendor content in ONEX: #{res.body}"
raise Vendors::Errors::SchedulePublishError
end
end
end
end