class PactBroker::Api::Resources::Version

Public Instance Methods

allowed_methods() click to toggle source
# File lib/pact_broker/api/resources/version.rb, line 20
def allowed_methods
  ["GET", "PUT", "PATCH", "DELETE", "OPTIONS"]
end
content_types_accepted() click to toggle source
# File lib/pact_broker/api/resources/version.rb, line 13
def content_types_accepted
  [
    ["application/json", :from_json],
    ["application/merge-patch+json", :from_merge_patch_json]
  ]
end
content_types_provided() click to toggle source
# File lib/pact_broker/api/resources/version.rb, line 9
def content_types_provided
  [["application/hal+json", :to_json]]
end
delete_resource() click to toggle source
# File lib/pact_broker/api/resources/version.rb, line 60
def delete_resource
  version_service.delete(version)
  true
end
from_json() click to toggle source
# File lib/pact_broker/api/resources/version.rb, line 36
def from_json
  if request.really_put?
    handle_request do
      version_service.create_or_overwrite(pacticipant_name, pacticipant_version_number, parsed_version)
    end
  else
    415
  end
end
from_merge_patch_json() click to toggle source
# File lib/pact_broker/api/resources/version.rb, line 46
def from_merge_patch_json
  if request.patch?
    handle_request do
      version_service.create_or_update(pacticipant_name, pacticipant_version_number, parsed_version)
    end
  else
    415
  end
end
patch_can_create?() click to toggle source
# File lib/pact_broker/api/resources/version.rb, line 28
def patch_can_create?
  true
end
policy_name() click to toggle source
# File lib/pact_broker/api/resources/version.rb, line 65
def policy_name
  :'versions::version'
end
put_can_create?() click to toggle source
# File lib/pact_broker/api/resources/version.rb, line 24
def put_can_create?
  true
end
resource_exists?() click to toggle source
# File lib/pact_broker/api/resources/version.rb, line 32
def resource_exists?
  !!version
end
to_json() click to toggle source
# File lib/pact_broker/api/resources/version.rb, line 56
def to_json
  decorator_class(:version_decorator).new(version).to_json(**decorator_options(environments: environments))
end

Private Instance Methods

environments() click to toggle source
# File lib/pact_broker/api/resources/version.rb, line 82
def environments
  @environments ||= environment_service.find_for_pacticipant(version.pacticipant)
end
handle_request() { || ... } click to toggle source
# File lib/pact_broker/api/resources/version.rb, line 71
def handle_request
  response_code = version ? 200 : 201
  @version = yield
  response.body = to_json
  response_code
end
parsed_version() click to toggle source
# File lib/pact_broker/api/resources/version.rb, line 78
def parsed_version
  @parsed_version ||= Decorators::VersionDecorator.new(OpenStruct.new).from_json(request_body)
end
version() click to toggle source
# File lib/pact_broker/api/resources/version.rb, line 86
def version
  @version ||= version_service.find_by_pacticipant_name_and_number(identifier_from_path)
end