Newer
Older
require 'dspace'
class LearningObjectPublisher
include RepositoriesProxy
def initialize(dspace_client)
@dspace = dspace_client
end
def create_draft(draft)
item = @dspace.collections.create_item(build_dspace_item(draft), id: DspaceService::TEST_COLLECTION)
draft.id_dspace = item.id
learning_object_repository.create draft
end
def post(learning_object, media_path)
DspaceUploadWorker.perform_async learning_object.id, learning_object.id_dspace, media_path
end
def publish(learning_object)
# change status
learning_object.status = 'active'
learning_object_repository.update_property(learning_object, 'status', learning_object.status)
end
private
def build_dspace_item(draft)
::Dspace::Item.new({
'name' => draft.name
})
end