class PactBroker::Api::Resources::Pacticipant

Public Instance Methods

allowed_methods() click to toggle source
# File lib/pact_broker/api/resources/pacticipant.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/pacticipant.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/pacticipant.rb, line 9
def content_types_provided
  [["application/hal+json", :to_json]]
end
create_new_pacticipant() click to toggle source
# File lib/pact_broker/api/resources/pacticipant.rb, line 97
def create_new_pacticipant
  pacticipant_service.create parsed_pacticipant(OpenStruct.new).to_h.merge(:name => pacticipant_name)
end
delete_resource() click to toggle source
# File lib/pact_broker/api/resources/pacticipant.rb, line 68
def delete_resource
  pacticipant_service.delete(pacticipant_name)
  true
end
from_json() click to toggle source

PUT or PATCH with content-type application/json

# File lib/pact_broker/api/resources/pacticipant.rb, line 41
def from_json
  if pacticipant
    @pacticipant = update_existing_pacticipant
  else
    if request.patch? # for backwards compatibility, wish I hadn't done this
      @pacticipant = create_new_pacticipant
      response.headers["Location"] = pacticipant_url(base_url, pacticipant)
    else
      return 404
    end
  end
  response.body = to_json
end
from_merge_patch_json() click to toggle source

PUT or PATCH with content-type application/merge-patch+json

# File lib/pact_broker/api/resources/pacticipant.rb, line 56
def from_merge_patch_json
  if request.patch?
    from_json
  else
    415
  end
end
known_methods() click to toggle source
# File lib/pact_broker/api/resources/pacticipant.rb, line 32
def known_methods
  super + ["PATCH"]
end
malformed_request?() click to toggle source
# File lib/pact_broker/api/resources/pacticipant.rb, line 36
def malformed_request?
  super || ((request.patch? || request.really_put?) && any_request_body? && validation_errors_for_schema?)
end
parsed_pacticipant(pacticipant) click to toggle source
# File lib/pact_broker/api/resources/pacticipant.rb, line 77
def parsed_pacticipant(pacticipant)
  decorator_class(:pacticipant_decorator).new(pacticipant).from_json(request_body)
end
patch_can_create?() click to toggle source
# File lib/pact_broker/api/resources/pacticipant.rb, line 28
def patch_can_create?
  true
end
policy_name() click to toggle source
# File lib/pact_broker/api/resources/pacticipant.rb, line 81
def policy_name
  :'pacticipants::pacticipant'
end
put_can_create?() click to toggle source
# File lib/pact_broker/api/resources/pacticipant.rb, line 24
def put_can_create?
  false
end
resource_exists?() click to toggle source
# File lib/pact_broker/api/resources/pacticipant.rb, line 64
def resource_exists?
  !!pacticipant
end
schema() click to toggle source
# File lib/pact_broker/api/resources/pacticipant.rb, line 85
def schema
  PactBroker::Api::Contracts::PacticipantSchema
end
to_json() click to toggle source
# File lib/pact_broker/api/resources/pacticipant.rb, line 73
def to_json
  decorator_class(:pacticipant_decorator).new(pacticipant).to_json(**decorator_options)
end
update_existing_pacticipant() click to toggle source
# File lib/pact_broker/api/resources/pacticipant.rb, line 89
def update_existing_pacticipant
  if request.really_put?
    @pacticipant = pacticipant_service.replace(pacticipant_name, parsed_pacticipant(OpenStruct.new))
  else
    @pacticipant = pacticipant_service.update(pacticipant_name, parsed_pacticipant(pacticipant))
  end
end