class PactBroker::Api::Resources::ReleasedVersion

Attributes

currently_supported_param[R]

Public Class Methods

new() click to toggle source
Calls superclass method
# File lib/pact_broker/api/resources/released_version.rb, line 11
def initialize
  super
  @currently_supported_param = params(default: {})[:currentlySupported]
end

Public Instance Methods

allowed_methods() click to toggle source
# File lib/pact_broker/api/resources/released_version.rb, line 26
def allowed_methods
  ["GET", "PATCH", "OPTIONS"]
end
content_types_accepted() click to toggle source
# File lib/pact_broker/api/resources/released_version.rb, line 20
def content_types_accepted
  [
    ["application/merge-patch+json", :from_merge_patch_json]
  ]
end
content_types_provided() click to toggle source
# File lib/pact_broker/api/resources/released_version.rb, line 16
def content_types_provided
  [["application/hal+json", :to_json]]
end
from_merge_patch_json() click to toggle source
# File lib/pact_broker/api/resources/released_version.rb, line 38
def from_merge_patch_json
  if request.patch?
    if resource_exists?
      process_currently_supported_param
    else
      404
    end
  else
    415
  end
end
policy_name() click to toggle source
# File lib/pact_broker/api/resources/released_version.rb, line 50
def policy_name
  :'versions::version'
end
policy_record() click to toggle source
# File lib/pact_broker/api/resources/released_version.rb, line 54
def policy_record
  released_version&.version
end
resource_exists?() click to toggle source
# File lib/pact_broker/api/resources/released_version.rb, line 30
def resource_exists?
  !!released_version
end
to_json() click to toggle source
# File lib/pact_broker/api/resources/released_version.rb, line 34
def to_json
  decorator_class(:released_version_decorator).new(released_version).to_json(decorator_options)
end

Private Instance Methods

process_currently_supported_param() click to toggle source
# File lib/pact_broker/api/resources/released_version.rb, line 62
def process_currently_supported_param
  if currently_supported_param == false
    @released_version = released_version_service.record_version_support_ended(released_version)
    response.body = to_json
  elsif currently_supported_param == true
    set_json_validation_error_messages(currentlySupported: [message("errors.validation.cannot_set_currently_supported_true")])
    422
  else
    response.body = to_json
  end
end
released_version() click to toggle source
# File lib/pact_broker/api/resources/released_version.rb, line 74
def released_version
  @released_version ||= released_version_service.find_by_uuid(uuid)
end
uuid() click to toggle source
# File lib/pact_broker/api/resources/released_version.rb, line 78
def uuid
  identifier_from_path[:uuid]
end