Sha256: 380c1875dd3cf01f35fba57c351cecdc244d97d919edeaa2f382954ed72421c3

Contents?: true

Size: 1.05 KB

Versions: 7

Compression:

Stored size: 1.05 KB

Contents

module Hyrax
  class VersioningService
    # Make a version and record the version committer
    # @param [ActiveFedora::File] content
    # @param [User, String] user
    def self.create(content, user = nil)
      content.create_version
      record_committer(content, user) if user
    end

    # @param [ActiveFedora::File] file
    def self.latest_version_of(file)
      file.versions.last
    end

    # Record the version committer of the last version
    # @param [ActiveFedora::File] content
    # @param [User, String] user_key
    def self.record_committer(content, user_key)
      user_key = user_key.user_key if user_key.respond_to?(:user_key)
      version = latest_version_of(content)
      return if version.nil?
      VersionCommitter.create(version_id: version.uri, committer_login: user_key)
    end

    # @param [ActiveFedora::File | Hyrax::FileMetadata] content
    def self.versioned_file_id(file)
      versions = file.versions.all

      return ActiveFedora::Base.uri_to_id(versions.last.uri) if versions.present?

      file.id
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
hyrax-2.9.6 app/services/hyrax/versioning_service.rb
hyrax-2.9.5 app/services/hyrax/versioning_service.rb
hyrax-2.9.4 app/services/hyrax/versioning_service.rb
hyrax-2.9.3 app/services/hyrax/versioning_service.rb
hyrax-2.9.2 app/services/hyrax/versioning_service.rb
hyrax-2.9.1 app/services/hyrax/versioning_service.rb
hyrax-2.9.0 app/services/hyrax/versioning_service.rb