Class: Candid::PreEncounter::Images::V1::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/candid/pre_encounter/images/v_1/client.rb

Instance Method Summary collapse

Constructor Details

#initialize(client:) ⇒ Candid::PreEncounter::Images::V1::Client



9
10
11
# File 'lib/candid/pre_encounter/images/v_1/client.rb', line 9

def initialize(client:)
  @client = client
end

Instance Method Details

#create(request_options: {}, **params) ⇒ Candid::PreEncounter::Images::V1::Types::Image

Adds an image. VersionConflictError is returned if a front or back of this coverage already exists.



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/candid/pre_encounter/images/v_1/client.rb', line 16

def create(request_options: {}, **params)
  _request = Candid::Internal::JSON::Request.new(
    base_url: request_options[:base_url] || Candid::Environment::PRODUCTION,
    method: "POST",
    path: "/images/v1",
    body: Candid::PreEncounter::Images::V1::Types::MutableImage.new(params).to_h
  )
  begin
    _response = @client.send(_request)
  rescue Net::HTTPRequestTimeout
    raise Candid::Errors::TimeoutError
  end
  code = _response.code.to_i
  if code.between?(200, 299)
    Candid::PreEncounter::Images::V1::Types::Image.load(_response.body)
  else
    error_class = Candid::Errors::ResponseError.subclass_for_code(code)
    raise error_class.new(_response.body, code: code)
  end
end

#deactivate(request_options: {}, **params) ⇒ untyped

Sets an Image as deactivated. The path must contain the most recent version to prevent races.

Returns:

  • (untyped)

Raises:

  • (error_class)


87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/candid/pre_encounter/images/v_1/client.rb', line 87

def deactivate(request_options: {}, **params)
  _request = Candid::Internal::JSON::Request.new(
    base_url: request_options[:base_url] || Candid::Environment::PRODUCTION,
    method: "DELETE",
    path: "/images/v1/#{params[:id]}/#{params[:version]}"
  )
  begin
    _response = @client.send(_request)
  rescue Net::HTTPRequestTimeout
    raise Candid::Errors::TimeoutError
  end
  code = _response.code.to_i
  return if code.between?(200, 299)

  error_class = Candid::Errors::ResponseError.subclass_for_code(code)
  raise error_class.new(_response.body, code: code)
end

#get(request_options: {}, **params) ⇒ Candid::PreEncounter::Images::V1::Types::Image

Gets an image by imageId.



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/candid/pre_encounter/images/v_1/client.rb', line 40

def get(request_options: {}, **params)
  _request = Candid::Internal::JSON::Request.new(
    base_url: request_options[:base_url] || Candid::Environment::PRODUCTION,
    method: "GET",
    path: "/images/v1/#{params[:id]}"
  )
  begin
    _response = @client.send(_request)
  rescue Net::HTTPRequestTimeout
    raise Candid::Errors::TimeoutError
  end
  code = _response.code.to_i
  if code.between?(200, 299)
    Candid::PreEncounter::Images::V1::Types::Image.load(_response.body)
  else
    error_class = Candid::Errors::ResponseError.subclass_for_code(code)
    raise error_class.new(_response.body, code: code)
  end
end

#get_multi(request_options: {}, **params) ⇒ Array[Candid::PreEncounter::Images::V1::Types::Image]

Searches for images that match the query parameters.

Returns:

Raises:

  • (error_class)


108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
# File 'lib/candid/pre_encounter/images/v_1/client.rb', line 108

def get_multi(request_options: {}, **params)
  params = Candid::Internal::Types::Utils.symbolize_keys(params)
  _query_param_names = %i[patient_id coverage_id]
  _query = params.slice(*_query_param_names)
  params.except(*_query_param_names)

  _request = Candid::Internal::JSON::Request.new(
    base_url: request_options[:base_url] || Candid::Environment::PRODUCTION,
    method: "GET",
    path: "/images/v1",
    query: _query
  )
  begin
    _response = @client.send(_request)
  rescue Net::HTTPRequestTimeout
    raise Candid::Errors::TimeoutError
  end
  code = _response.code.to_i
  return if code.between?(200, 299)

  error_class = Candid::Errors::ResponseError.subclass_for_code(code)
  raise error_class.new(_response.body, code: code)
end

#update(request_options: {}, **params) ⇒ Candid::PreEncounter::Images::V1::Types::Image

Updates an Image. The path must contain the most recent version to prevent races.



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/candid/pre_encounter/images/v_1/client.rb', line 63

def update(request_options: {}, **params)
  _request = Candid::Internal::JSON::Request.new(
    base_url: request_options[:base_url] || Candid::Environment::PRODUCTION,
    method: "PUT",
    path: "/images/v1/#{params[:id]}/#{params[:version]}",
    body: Candid::PreEncounter::Images::V1::Types::MutableImage.new(params).to_h
  )
  begin
    _response = @client.send(_request)
  rescue Net::HTTPRequestTimeout
    raise Candid::Errors::TimeoutError
  end
  code = _response.code.to_i
  if code.between?(200, 299)
    Candid::PreEncounter::Images::V1::Types::Image.load(_response.body)
  else
    error_class = Candid::Errors::ResponseError.subclass_for_code(code)
    raise error_class.new(_response.body, code: code)
  end
end