Class: PactBroker::Api::Resources::ReleasedVersionsForVersionAndEnvironment

Inherits:
BaseResource
  • Object
show all
Defined in:
lib/pact_broker/api/resources/released_versions_for_version_and_environment.rb

Instance Method Summary collapse

Constructor Details

#initializeReleasedVersionsForVersionAndEnvironment

Returns a new instance of ReleasedVersionsForVersionAndEnvironment.



8
9
10
11
# File 'lib/pact_broker/api/resources/released_versions_for_version_and_environment.rb', line 8

def initialize
  super
  @existing_released_version = version && environment && released_version_service.find_released_version_for_version_and_environment(version, environment)
end

Instance Method Details

#allowed_methodsObject



21
22
23
# File 'lib/pact_broker/api/resources/released_versions_for_version_and_environment.rb', line 21

def allowed_methods
  ["GET", "POST", "OPTIONS"]
end

#content_types_acceptedObject



13
14
15
# File 'lib/pact_broker/api/resources/released_versions_for_version_and_environment.rb', line 13

def content_types_accepted
  [["application/json", :from_json]]
end

#content_types_providedObject



17
18
19
# File 'lib/pact_broker/api/resources/released_versions_for_version_and_environment.rb', line 17

def content_types_provided
  [["application/hal+json", :to_json]]
end

#create_pathObject



33
34
35
# File 'lib/pact_broker/api/resources/released_versions_for_version_and_environment.rb', line 33

def create_path
  released_version_url(existing_released_version || OpenStruct.new(uuid: next_released_version_uuid), base_url)
end

#finish_requestObject



55
56
57
58
59
60
# File 'lib/pact_broker/api/resources/released_versions_for_version_and_environment.rb', line 55

def finish_request
  if request.post? && existing_released_version
    response.code = 200
  end
  super
end

#from_jsonObject



37
38
39
40
41
# File 'lib/pact_broker/api/resources/released_versions_for_version_and_environment.rb', line 37

def from_json
  @released_version = released_version_service.create_or_update(next_released_version_uuid, version, environment)
  response.body = decorator_class(:released_version_decorator).new(released_version).to_json(decorator_options)
  true
end

#policy_nameObject



47
48
49
# File 'lib/pact_broker/api/resources/released_versions_for_version_and_environment.rb', line 47

def policy_name
  :'versions::released_version'
end

#policy_recordObject



51
52
53
# File 'lib/pact_broker/api/resources/released_versions_for_version_and_environment.rb', line 51

def policy_record
  environment
end

#post_is_create?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/pact_broker/api/resources/released_versions_for_version_and_environment.rb', line 29

def post_is_create?
  true
end

#resource_exists?Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/pact_broker/api/resources/released_versions_for_version_and_environment.rb', line 25

def resource_exists?
  !!version && !!environment
end

#to_jsonObject



43
44
45
# File 'lib/pact_broker/api/resources/released_versions_for_version_and_environment.rb', line 43

def to_json
  decorator_class(:released_versions_decorator).new(released_versions).to_json(decorator_options(title: title))
end