Class: PactBroker::Api::Resources::Environments

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

Instance Method Summary collapse

Instance Method Details

#allowed_methodsObject



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

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

#content_types_acceptedObject



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

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

#content_types_providedObject



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

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

#create_environmentObject



57
58
59
# File 'lib/pact_broker/api/resources/environments.rb', line 57

def create_environment
  environment_service.create(uuid, parsed_environment)
end

#create_pathObject



37
38
39
# File 'lib/pact_broker/api/resources/environments.rb', line 37

def create_path
  environment_url(OpenStruct.new(uuid: uuid), base_url)
end

#environmentsObject



65
66
67
68
69
70
71
# File 'lib/pact_broker/api/resources/environments.rb', line 65

def environments
  @environments ||= if request.query["name"]
                      [environment_service.find_by_name(request.query["name"])]
                    else
                      environment_service.find_all
                    end
end

#from_jsonObject



41
42
43
# File 'lib/pact_broker/api/resources/environments.rb', line 41

def from_json
  response.body = decorator_class(:environment_decorator).new(create_environment).to_json(decorator_options)
end

#malformed_request?Boolean

Returns:

  • (Boolean)


29
30
31
32
33
34
35
# File 'lib/pact_broker/api/resources/environments.rb', line 29

def malformed_request?
  if request.post?
    invalid_json? || validation_errors_for_schema?(schema, params.merge(uuid: uuid))
  else
    false
  end
end

#parsed_environmentObject



53
54
55
# File 'lib/pact_broker/api/resources/environments.rb', line 53

def parsed_environment
  @parsed_environment ||= decorator_class(:environment_decorator).new(PactBroker::Deployments::Environment.new).from_json(request_body)
end

#policy_nameObject



45
46
47
# File 'lib/pact_broker/api/resources/environments.rb', line 45

def policy_name
  :'deployments::environments'
end

#post_is_create?Boolean

Returns:

  • (Boolean)


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

def post_is_create?
  true
end

#resource_exists?Boolean

Returns:

  • (Boolean)


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

def resource_exists?
  true
end

#schemaObject



73
74
75
# File 'lib/pact_broker/api/resources/environments.rb', line 73

def schema
  api_contract_class(:environment_schema)
end

#to_jsonObject



49
50
51
# File 'lib/pact_broker/api/resources/environments.rb', line 49

def to_json
  decorator_class(:environments_decorator).new(environments).to_json(decorator_options)
end

#uuidObject



61
62
63
# File 'lib/pact_broker/api/resources/environments.rb', line 61

def uuid
  @uuid ||= environment_service.next_uuid
end