xbim_comms 2.0.1 → 2.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (144) hide show
  1. checksums.yaml +4 -4
  2. metadata +7 -149
  3. data/Gemfile +0 -9
  4. data/README.md +0 -210
  5. data/Rakefile +0 -10
  6. data/lib/xbim_comms/api/contacts_api.rb +0 -206
  7. data/lib/xbim_comms/api/conversations_api.rb +0 -2670
  8. data/lib/xbim_comms/api/files_api.rb +0 -107
  9. data/lib/xbim_comms/api/snapshots_api.rb +0 -100
  10. data/lib/xbim_comms/api_client.rb +0 -390
  11. data/lib/xbim_comms/api_error.rb +0 -57
  12. data/lib/xbim_comms/configuration.rb +0 -278
  13. data/lib/xbim_comms/models/aggregate.rb +0 -227
  14. data/lib/xbim_comms/models/aggregate_list_value.rb +0 -220
  15. data/lib/xbim_comms/models/analytical_result.rb +0 -270
  16. data/lib/xbim_comms/models/analytical_result_all_of.rb +0 -258
  17. data/lib/xbim_comms/models/animation.rb +0 -232
  18. data/lib/xbim_comms/models/animation_all_of.rb +0 -220
  19. data/lib/xbim_comms/models/bitmap.rb +0 -303
  20. data/lib/xbim_comms/models/blob.rb +0 -245
  21. data/lib/xbim_comms/models/boolean_value.rb +0 -218
  22. data/lib/xbim_comms/models/clipping_plane.rb +0 -231
  23. data/lib/xbim_comms/models/coloring.rb +0 -229
  24. data/lib/xbim_comms/models/column_request.rb +0 -279
  25. data/lib/xbim_comms/models/component.rb +0 -236
  26. data/lib/xbim_comms/models/components.rb +0 -240
  27. data/lib/xbim_comms/models/contact.rb +0 -227
  28. data/lib/xbim_comms/models/contact_list.rb +0 -238
  29. data/lib/xbim_comms/models/conversation.rb +0 -392
  30. data/lib/xbim_comms/models/conversation_create.rb +0 -273
  31. data/lib/xbim_comms/models/conversation_list.rb +0 -238
  32. data/lib/xbim_comms/models/conversation_tenant.rb +0 -254
  33. data/lib/xbim_comms/models/conversation_update.rb +0 -302
  34. data/lib/xbim_comms/models/entity_key.rb +0 -227
  35. data/lib/xbim_comms/models/exception_message.rb +0 -245
  36. data/lib/xbim_comms/models/file.rb +0 -266
  37. data/lib/xbim_comms/models/file_all_of.rb +0 -254
  38. data/lib/xbim_comms/models/int32_value.rb +0 -218
  39. data/lib/xbim_comms/models/key_frame.rb +0 -236
  40. data/lib/xbim_comms/models/line.rb +0 -231
  41. data/lib/xbim_comms/models/message.rb +0 -416
  42. data/lib/xbim_comms/models/message_content.rb +0 -220
  43. data/lib/xbim_comms/models/message_create.rb +0 -273
  44. data/lib/xbim_comms/models/message_list.rb +0 -238
  45. data/lib/xbim_comms/models/message_part.rb +0 -246
  46. data/lib/xbim_comms/models/message_update.rb +0 -297
  47. data/lib/xbim_comms/models/orthogonal_camera.rb +0 -269
  48. data/lib/xbim_comms/models/participant.rb +0 -232
  49. data/lib/xbim_comms/models/participant_with_role.rb +0 -293
  50. data/lib/xbim_comms/models/participant_with_role_create.rb +0 -266
  51. data/lib/xbim_comms/models/participant_with_role_list.rb +0 -238
  52. data/lib/xbim_comms/models/participant_with_role_update.rb +0 -261
  53. data/lib/xbim_comms/models/perspective_camera.rb +0 -269
  54. data/lib/xbim_comms/models/pie_chart.rb +0 -257
  55. data/lib/xbim_comms/models/pie_chart_all_of.rb +0 -245
  56. data/lib/xbim_comms/models/point.rb +0 -227
  57. data/lib/xbim_comms/models/preview_row.rb +0 -220
  58. data/lib/xbim_comms/models/schedule.rb +0 -270
  59. data/lib/xbim_comms/models/schedule_all_of.rb +0 -258
  60. data/lib/xbim_comms/models/schedule_column.rb +0 -384
  61. data/lib/xbim_comms/models/schedule_request.rb +0 -252
  62. data/lib/xbim_comms/models/schedule_request_all_of.rb +0 -240
  63. data/lib/xbim_comms/models/section_box.rb +0 -274
  64. data/lib/xbim_comms/models/sheet.rb +0 -268
  65. data/lib/xbim_comms/models/sheet_all_of.rb +0 -256
  66. data/lib/xbim_comms/models/sheet_part.rb +0 -254
  67. data/lib/xbim_comms/models/snapshot.rb +0 -270
  68. data/lib/xbim_comms/models/text.rb +0 -220
  69. data/lib/xbim_comms/models/view.rb +0 -239
  70. data/lib/xbim_comms/models/view_all_of.rb +0 -227
  71. data/lib/xbim_comms/models/view_setup_hints.rb +0 -236
  72. data/lib/xbim_comms/models/viewpoint.rb +0 -296
  73. data/lib/xbim_comms/models/visibility.rb +0 -238
  74. data/lib/xbim_comms/version.rb +0 -15
  75. data/lib/xbim_comms.rb +0 -104
  76. data/spec/api/contacts_api_spec.rb +0 -74
  77. data/spec/api/conversations_api_spec.rb +0 -521
  78. data/spec/api/files_api_spec.rb +0 -50
  79. data/spec/api/snapshots_api_spec.rb +0 -49
  80. data/spec/api_client_spec.rb +0 -226
  81. data/spec/configuration_spec.rb +0 -42
  82. data/spec/models/aggregate_list_value_spec.rb +0 -34
  83. data/spec/models/aggregate_spec.rb +0 -40
  84. data/spec/models/analytical_result_all_of_spec.rb +0 -58
  85. data/spec/models/analytical_result_spec.rb +0 -58
  86. data/spec/models/animation_all_of_spec.rb +0 -34
  87. data/spec/models/animation_spec.rb +0 -34
  88. data/spec/models/bitmap_spec.rb +0 -68
  89. data/spec/models/blob_spec.rb +0 -52
  90. data/spec/models/boolean_value_spec.rb +0 -34
  91. data/spec/models/clipping_plane_spec.rb +0 -40
  92. data/spec/models/coloring_spec.rb +0 -40
  93. data/spec/models/column_request_spec.rb +0 -56
  94. data/spec/models/component_spec.rb +0 -46
  95. data/spec/models/components_spec.rb +0 -46
  96. data/spec/models/contact_list_spec.rb +0 -46
  97. data/spec/models/contact_spec.rb +0 -40
  98. data/spec/models/conversation_create_spec.rb +0 -64
  99. data/spec/models/conversation_list_spec.rb +0 -46
  100. data/spec/models/conversation_spec.rb +0 -122
  101. data/spec/models/conversation_tenant_spec.rb +0 -58
  102. data/spec/models/conversation_update_spec.rb +0 -68
  103. data/spec/models/entity_key_spec.rb +0 -40
  104. data/spec/models/exception_message_spec.rb +0 -52
  105. data/spec/models/file_all_of_spec.rb +0 -58
  106. data/spec/models/file_spec.rb +0 -58
  107. data/spec/models/int32_value_spec.rb +0 -34
  108. data/spec/models/key_frame_spec.rb +0 -46
  109. data/spec/models/line_spec.rb +0 -40
  110. data/spec/models/message_content_spec.rb +0 -34
  111. data/spec/models/message_create_spec.rb +0 -64
  112. data/spec/models/message_list_spec.rb +0 -46
  113. data/spec/models/message_part_spec.rb +0 -46
  114. data/spec/models/message_spec.rb +0 -146
  115. data/spec/models/message_update_spec.rb +0 -68
  116. data/spec/models/orthogonal_camera_spec.rb +0 -64
  117. data/spec/models/participant_spec.rb +0 -40
  118. data/spec/models/participant_with_role_create_spec.rb +0 -44
  119. data/spec/models/participant_with_role_list_spec.rb +0 -46
  120. data/spec/models/participant_with_role_spec.rb +0 -62
  121. data/spec/models/participant_with_role_update_spec.rb +0 -44
  122. data/spec/models/perspective_camera_spec.rb +0 -64
  123. data/spec/models/pie_chart_all_of_spec.rb +0 -52
  124. data/spec/models/pie_chart_spec.rb +0 -52
  125. data/spec/models/point_spec.rb +0 -40
  126. data/spec/models/preview_row_spec.rb +0 -34
  127. data/spec/models/schedule_all_of_spec.rb +0 -58
  128. data/spec/models/schedule_column_spec.rb +0 -118
  129. data/spec/models/schedule_request_all_of_spec.rb +0 -46
  130. data/spec/models/schedule_request_spec.rb +0 -46
  131. data/spec/models/schedule_spec.rb +0 -58
  132. data/spec/models/section_box_spec.rb +0 -70
  133. data/spec/models/sheet_all_of_spec.rb +0 -58
  134. data/spec/models/sheet_part_spec.rb +0 -58
  135. data/spec/models/sheet_spec.rb +0 -58
  136. data/spec/models/snapshot_spec.rb +0 -50
  137. data/spec/models/text_spec.rb +0 -28
  138. data/spec/models/view_all_of_spec.rb +0 -40
  139. data/spec/models/view_setup_hints_spec.rb +0 -46
  140. data/spec/models/view_spec.rb +0 -40
  141. data/spec/models/viewpoint_spec.rb +0 -82
  142. data/spec/models/visibility_spec.rb +0 -46
  143. data/spec/spec_helper.rb +0 -111
  144. data/xbim_comms.gemspec +0 -38
@@ -1,107 +0,0 @@
1
- =begin
2
- #Flex Comms API 2.0
3
-
4
- #Communication centralised around construction data
5
-
6
- The version of the OpenAPI document: 2.0
7
- Contact: info@xbim.net
8
- Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 5.4.0
10
-
11
- =end
12
-
13
- require 'cgi'
14
-
15
- module XbimComms
16
- class FilesApi
17
- attr_accessor :api_client
18
-
19
- def initialize(api_client = ApiClient.default)
20
- @api_client = api_client
21
- end
22
- # Gets a File Blob from a Message
23
- # <span style='font-size: 17px;'>Summary:</span>Gets a File Blob from a Message.<br/>Return Type: <b></b><br/><br/>
24
- # @param hash [String] A hashId identifying the message
25
- # @param file_id [Integer] The Id of the file to download
26
- # @param region [String] The data center region the data resides in
27
- # @param [Hash] opts the optional parameters
28
- # @option opts [String] :size The size of thumbnail to download (where applicable) (default to '0')
29
- # @return [nil]
30
- def files_get_file(hash, file_id, region, opts = {})
31
- files_get_file_with_http_info(hash, file_id, region, opts)
32
- nil
33
- end
34
-
35
- # Gets a File Blob from a Message
36
- # &lt;span style&#x3D;&#39;font-size: 17px;&#39;&gt;Summary:&lt;/span&gt;Gets a File Blob from a Message.&lt;br/&gt;Return Type: &lt;b&gt;&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;
37
- # @param hash [String] A hashId identifying the message
38
- # @param file_id [Integer] The Id of the file to download
39
- # @param region [String] The data center region the data resides in
40
- # @param [Hash] opts the optional parameters
41
- # @option opts [String] :size The size of thumbnail to download (where applicable)
42
- # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
43
- def files_get_file_with_http_info(hash, file_id, region, opts = {})
44
- if @api_client.config.debugging
45
- @api_client.config.logger.debug 'Calling API: FilesApi.files_get_file ...'
46
- end
47
- # verify the required parameter 'hash' is set
48
- if @api_client.config.client_side_validation && hash.nil?
49
- fail ArgumentError, "Missing the required parameter 'hash' when calling FilesApi.files_get_file"
50
- end
51
- # verify the required parameter 'file_id' is set
52
- if @api_client.config.client_side_validation && file_id.nil?
53
- fail ArgumentError, "Missing the required parameter 'file_id' when calling FilesApi.files_get_file"
54
- end
55
- # verify the required parameter 'region' is set
56
- if @api_client.config.client_side_validation && region.nil?
57
- fail ArgumentError, "Missing the required parameter 'region' when calling FilesApi.files_get_file"
58
- end
59
- # verify enum value
60
- allowable_values = ["UK", "WestEurope", "Sandbox"]
61
- if @api_client.config.client_side_validation && !allowable_values.include?(region)
62
- fail ArgumentError, "invalid value for \"region\", must be one of #{allowable_values}"
63
- end
64
- allowable_values = ["Full", "Medium", "Small"]
65
- if @api_client.config.client_side_validation && opts[:'size'] && !allowable_values.include?(opts[:'size'])
66
- fail ArgumentError, "invalid value for \"size\", must be one of #{allowable_values}"
67
- end
68
- # resource path
69
- local_var_path = '/{region}/comms/2.0/Files/{hash}/{fileId}'.sub('{' + 'hash' + '}', CGI.escape(hash.to_s)).sub('{' + 'fileId' + '}', CGI.escape(file_id.to_s)).sub('{' + 'region' + '}', CGI.escape(region.to_s))
70
-
71
- # query parameters
72
- query_params = opts[:query_params] || {}
73
- query_params[:'size'] = opts[:'size'] if !opts[:'size'].nil?
74
-
75
- # header parameters
76
- header_params = opts[:header_params] || {}
77
-
78
- # form parameters
79
- form_params = opts[:form_params] || {}
80
-
81
- # http body (model)
82
- post_body = opts[:debug_body]
83
-
84
- # return_type
85
- return_type = opts[:debug_return_type]
86
-
87
- # auth_names
88
- auth_names = opts[:debug_auth_names] || []
89
-
90
- new_options = opts.merge(
91
- :operation => :"FilesApi.files_get_file",
92
- :header_params => header_params,
93
- :query_params => query_params,
94
- :form_params => form_params,
95
- :body => post_body,
96
- :auth_names => auth_names,
97
- :return_type => return_type
98
- )
99
-
100
- data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
101
- if @api_client.config.debugging
102
- @api_client.config.logger.debug "API called: FilesApi#files_get_file\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
103
- end
104
- return data, status_code, headers
105
- end
106
- end
107
- end
@@ -1,100 +0,0 @@
1
- =begin
2
- #Flex Comms API 2.0
3
-
4
- #Communication centralised around construction data
5
-
6
- The version of the OpenAPI document: 2.0
7
- Contact: info@xbim.net
8
- Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 5.4.0
10
-
11
- =end
12
-
13
- require 'cgi'
14
-
15
- module XbimComms
16
- class SnapshotsApi
17
- attr_accessor :api_client
18
-
19
- def initialize(api_client = ApiClient.default)
20
- @api_client = api_client
21
- end
22
- # Gets a File Blob from a Message
23
- # <span style='font-size: 17px;'>Summary:</span>Gets a File Blob from a Message.<br/>Return Type: <b></b><br/><br/>
24
- # @param hash [String] A hashId identifying the conversation and message
25
- # @param file_id [String] The Id of the file to download
26
- # @param region [String] The data center region the data resides in
27
- # @param [Hash] opts the optional parameters
28
- # @return [nil]
29
- def snapshots_get_snapshot(hash, file_id, region, opts = {})
30
- snapshots_get_snapshot_with_http_info(hash, file_id, region, opts)
31
- nil
32
- end
33
-
34
- # Gets a File Blob from a Message
35
- # &lt;span style&#x3D;&#39;font-size: 17px;&#39;&gt;Summary:&lt;/span&gt;Gets a File Blob from a Message.&lt;br/&gt;Return Type: &lt;b&gt;&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;
36
- # @param hash [String] A hashId identifying the conversation and message
37
- # @param file_id [String] The Id of the file to download
38
- # @param region [String] The data center region the data resides in
39
- # @param [Hash] opts the optional parameters
40
- # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
41
- def snapshots_get_snapshot_with_http_info(hash, file_id, region, opts = {})
42
- if @api_client.config.debugging
43
- @api_client.config.logger.debug 'Calling API: SnapshotsApi.snapshots_get_snapshot ...'
44
- end
45
- # verify the required parameter 'hash' is set
46
- if @api_client.config.client_side_validation && hash.nil?
47
- fail ArgumentError, "Missing the required parameter 'hash' when calling SnapshotsApi.snapshots_get_snapshot"
48
- end
49
- # verify the required parameter 'file_id' is set
50
- if @api_client.config.client_side_validation && file_id.nil?
51
- fail ArgumentError, "Missing the required parameter 'file_id' when calling SnapshotsApi.snapshots_get_snapshot"
52
- end
53
- # verify the required parameter 'region' is set
54
- if @api_client.config.client_side_validation && region.nil?
55
- fail ArgumentError, "Missing the required parameter 'region' when calling SnapshotsApi.snapshots_get_snapshot"
56
- end
57
- # verify enum value
58
- allowable_values = ["UK", "WestEurope", "Sandbox"]
59
- if @api_client.config.client_side_validation && !allowable_values.include?(region)
60
- fail ArgumentError, "invalid value for \"region\", must be one of #{allowable_values}"
61
- end
62
- # resource path
63
- local_var_path = '/{region}/comms/2.0/Snapshots/{hash}/{fileId}'.sub('{' + 'hash' + '}', CGI.escape(hash.to_s)).sub('{' + 'fileId' + '}', CGI.escape(file_id.to_s)).sub('{' + 'region' + '}', CGI.escape(region.to_s))
64
-
65
- # query parameters
66
- query_params = opts[:query_params] || {}
67
-
68
- # header parameters
69
- header_params = opts[:header_params] || {}
70
-
71
- # form parameters
72
- form_params = opts[:form_params] || {}
73
-
74
- # http body (model)
75
- post_body = opts[:debug_body]
76
-
77
- # return_type
78
- return_type = opts[:debug_return_type]
79
-
80
- # auth_names
81
- auth_names = opts[:debug_auth_names] || []
82
-
83
- new_options = opts.merge(
84
- :operation => :"SnapshotsApi.snapshots_get_snapshot",
85
- :header_params => header_params,
86
- :query_params => query_params,
87
- :form_params => form_params,
88
- :body => post_body,
89
- :auth_names => auth_names,
90
- :return_type => return_type
91
- )
92
-
93
- data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
94
- if @api_client.config.debugging
95
- @api_client.config.logger.debug "API called: SnapshotsApi#snapshots_get_snapshot\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
96
- end
97
- return data, status_code, headers
98
- end
99
- end
100
- end
@@ -1,390 +0,0 @@
1
- =begin
2
- #Flex Comms API 2.0
3
-
4
- #Communication centralised around construction data
5
-
6
- The version of the OpenAPI document: 2.0
7
- Contact: info@xbim.net
8
- Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 5.4.0
10
-
11
- =end
12
-
13
- require 'date'
14
- require 'json'
15
- require 'logger'
16
- require 'tempfile'
17
- require 'time'
18
- require 'typhoeus'
19
-
20
- module XbimComms
21
- class ApiClient
22
- # The Configuration object holding settings to be used in the API client.
23
- attr_accessor :config
24
-
25
- # Defines the headers to be used in HTTP requests of all API calls by default.
26
- #
27
- # @return [Hash]
28
- attr_accessor :default_headers
29
-
30
- # Initializes the ApiClient
31
- # @option config [Configuration] Configuration for initializing the object, default to Configuration.default
32
- def initialize(config = Configuration.default)
33
- @config = config
34
- @user_agent = "OpenAPI-Generator/#{VERSION}/ruby"
35
- @default_headers = {
36
- 'Content-Type' => 'application/json',
37
- 'User-Agent' => @user_agent
38
- }
39
- end
40
-
41
- def self.default
42
- @@default ||= ApiClient.new
43
- end
44
-
45
- # Call an API with given options.
46
- #
47
- # @return [Array<(Object, Integer, Hash)>] an array of 3 elements:
48
- # the data deserialized from response body (could be nil), response status code and response headers.
49
- def call_api(http_method, path, opts = {})
50
- request = build_request(http_method, path, opts)
51
- response = request.run
52
-
53
- if @config.debugging
54
- @config.logger.debug "HTTP response body ~BEGIN~\n#{response.body}\n~END~\n"
55
- end
56
-
57
- unless response.success?
58
- if response.timed_out?
59
- fail ApiError.new('Connection timed out')
60
- elsif response.code == 0
61
- # Errors from libcurl will be made visible here
62
- fail ApiError.new(:code => 0,
63
- :message => response.return_message)
64
- else
65
- fail ApiError.new(:code => response.code,
66
- :response_headers => response.headers,
67
- :response_body => response.body),
68
- response.status_message
69
- end
70
- end
71
-
72
- if opts[:return_type]
73
- data = deserialize(response, opts[:return_type])
74
- else
75
- data = nil
76
- end
77
- return data, response.code, response.headers
78
- end
79
-
80
- # Builds the HTTP request
81
- #
82
- # @param [String] http_method HTTP method/verb (e.g. POST)
83
- # @param [String] path URL path (e.g. /account/new)
84
- # @option opts [Hash] :header_params Header parameters
85
- # @option opts [Hash] :query_params Query parameters
86
- # @option opts [Hash] :form_params Query parameters
87
- # @option opts [Object] :body HTTP body (JSON/XML)
88
- # @return [Typhoeus::Request] A Typhoeus Request
89
- def build_request(http_method, path, opts = {})
90
- url = build_request_url(path, opts)
91
- http_method = http_method.to_sym.downcase
92
-
93
- header_params = @default_headers.merge(opts[:header_params] || {})
94
- query_params = opts[:query_params] || {}
95
- form_params = opts[:form_params] || {}
96
-
97
- update_params_for_auth! header_params, query_params, opts[:auth_names]
98
-
99
- # set ssl_verifyhosts option based on @config.verify_ssl_host (true/false)
100
- _verify_ssl_host = @config.verify_ssl_host ? 2 : 0
101
-
102
- req_opts = {
103
- :method => http_method,
104
- :headers => header_params,
105
- :params => query_params,
106
- :params_encoding => @config.params_encoding,
107
- :timeout => @config.timeout,
108
- :ssl_verifypeer => @config.verify_ssl,
109
- :ssl_verifyhost => _verify_ssl_host,
110
- :sslcert => @config.cert_file,
111
- :sslkey => @config.key_file,
112
- :verbose => @config.debugging
113
- }
114
-
115
- # set custom cert, if provided
116
- req_opts[:cainfo] = @config.ssl_ca_cert if @config.ssl_ca_cert
117
-
118
- if [:post, :patch, :put, :delete].include?(http_method)
119
- req_body = build_request_body(header_params, form_params, opts[:body])
120
- req_opts.update :body => req_body
121
- if @config.debugging
122
- @config.logger.debug "HTTP request body param ~BEGIN~\n#{req_body}\n~END~\n"
123
- end
124
- end
125
-
126
- request = Typhoeus::Request.new(url, req_opts)
127
- download_file(request) if opts[:return_type] == 'File'
128
- request
129
- end
130
-
131
- # Builds the HTTP request body
132
- #
133
- # @param [Hash] header_params Header parameters
134
- # @param [Hash] form_params Query parameters
135
- # @param [Object] body HTTP body (JSON/XML)
136
- # @return [String] HTTP body data in the form of string
137
- def build_request_body(header_params, form_params, body)
138
- # http form
139
- if header_params['Content-Type'] == 'application/x-www-form-urlencoded' ||
140
- header_params['Content-Type'] == 'multipart/form-data'
141
- data = {}
142
- form_params.each do |key, value|
143
- case value
144
- when ::File, ::Array, nil
145
- # let typhoeus handle File, Array and nil parameters
146
- data[key] = value
147
- else
148
- data[key] = value.to_s
149
- end
150
- end
151
- elsif body
152
- data = body.is_a?(String) ? body : body.to_json
153
- else
154
- data = nil
155
- end
156
- data
157
- end
158
-
159
- # Save response body into a file in (the defined) temporary folder, using the filename
160
- # from the "Content-Disposition" header if provided, otherwise a random filename.
161
- # The response body is written to the file in chunks in order to handle files which
162
- # size is larger than maximum Ruby String or even larger than the maximum memory a Ruby
163
- # process can use.
164
- #
165
- # @see Configuration#temp_folder_path
166
- def download_file(request)
167
- tempfile = nil
168
- encoding = nil
169
- request.on_headers do |response|
170
- content_disposition = response.headers['Content-Disposition']
171
- if content_disposition && content_disposition =~ /filename=/i
172
- filename = content_disposition[/filename=['"]?([^'"\s]+)['"]?/, 1]
173
- prefix = sanitize_filename(filename)
174
- else
175
- prefix = 'download-'
176
- end
177
- prefix = prefix + '-' unless prefix.end_with?('-')
178
- encoding = response.body.encoding
179
- tempfile = Tempfile.open(prefix, @config.temp_folder_path, encoding: encoding)
180
- @tempfile = tempfile
181
- end
182
- request.on_body do |chunk|
183
- chunk.force_encoding(encoding)
184
- tempfile.write(chunk)
185
- end
186
- request.on_complete do |response|
187
- if tempfile
188
- tempfile.close
189
- @config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder "\
190
- "with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file "\
191
- "will be deleted automatically with GC. It's also recommended to delete the temp file "\
192
- "explicitly with `tempfile.delete`"
193
- end
194
- end
195
- end
196
-
197
- # Check if the given MIME is a JSON MIME.
198
- # JSON MIME examples:
199
- # application/json
200
- # application/json; charset=UTF8
201
- # APPLICATION/JSON
202
- # */*
203
- # @param [String] mime MIME
204
- # @return [Boolean] True if the MIME is application/json
205
- def json_mime?(mime)
206
- (mime == '*/*') || !(mime =~ /Application\/.*json(?!p)(;.*)?/i).nil?
207
- end
208
-
209
- # Deserialize the response to the given return type.
210
- #
211
- # @param [Response] response HTTP response
212
- # @param [String] return_type some examples: "User", "Array<User>", "Hash<String, Integer>"
213
- def deserialize(response, return_type)
214
- body = response.body
215
-
216
- # handle file downloading - return the File instance processed in request callbacks
217
- # note that response body is empty when the file is written in chunks in request on_body callback
218
- return @tempfile if return_type == 'File'
219
-
220
- return nil if body.nil? || body.empty?
221
-
222
- # return response body directly for String return type
223
- return body if return_type == 'String'
224
-
225
- # ensuring a default content type
226
- content_type = response.headers['Content-Type'] || 'application/json'
227
-
228
- fail "Content-Type is not supported: #{content_type}" unless json_mime?(content_type)
229
-
230
- begin
231
- data = JSON.parse("[#{body}]", :symbolize_names => true)[0]
232
- rescue JSON::ParserError => e
233
- if %w(String Date Time).include?(return_type)
234
- data = body
235
- else
236
- raise e
237
- end
238
- end
239
-
240
- convert_to_type data, return_type
241
- end
242
-
243
- # Convert data to the given return type.
244
- # @param [Object] data Data to be converted
245
- # @param [String] return_type Return type
246
- # @return [Mixed] Data in a particular type
247
- def convert_to_type(data, return_type)
248
- return nil if data.nil?
249
- case return_type
250
- when 'String'
251
- data.to_s
252
- when 'Integer'
253
- data.to_i
254
- when 'Float'
255
- data.to_f
256
- when 'Boolean'
257
- data == true
258
- when 'Time'
259
- # parse date time (expecting ISO 8601 format)
260
- Time.parse data
261
- when 'Date'
262
- # parse date time (expecting ISO 8601 format)
263
- Date.parse data
264
- when 'Object'
265
- # generic object (usually a Hash), return directly
266
- data
267
- when /\AArray<(.+)>\z/
268
- # e.g. Array<Pet>
269
- sub_type = $1
270
- data.map { |item| convert_to_type(item, sub_type) }
271
- when /\AHash\<String, (.+)\>\z/
272
- # e.g. Hash<String, Integer>
273
- sub_type = $1
274
- {}.tap do |hash|
275
- data.each { |k, v| hash[k] = convert_to_type(v, sub_type) }
276
- end
277
- else
278
- # models (e.g. Pet) or oneOf
279
- klass = XbimComms.const_get(return_type)
280
- klass.respond_to?(:openapi_one_of) ? klass.build(data) : klass.build_from_hash(data)
281
- end
282
- end
283
-
284
- # Sanitize filename by removing path.
285
- # e.g. ../../sun.gif becomes sun.gif
286
- #
287
- # @param [String] filename the filename to be sanitized
288
- # @return [String] the sanitized filename
289
- def sanitize_filename(filename)
290
- filename.gsub(/.*[\/\\]/, '')
291
- end
292
-
293
- def build_request_url(path, opts = {})
294
- # Add leading and trailing slashes to path
295
- path = "/#{path}".gsub(/\/+/, '/')
296
- @config.base_url(opts[:operation]) + path
297
- end
298
-
299
- # Update header and query params based on authentication settings.
300
- #
301
- # @param [Hash] header_params Header parameters
302
- # @param [Hash] query_params Query parameters
303
- # @param [String] auth_names Authentication scheme name
304
- def update_params_for_auth!(header_params, query_params, auth_names)
305
- Array(auth_names).each do |auth_name|
306
- auth_setting = @config.auth_settings[auth_name]
307
- next unless auth_setting
308
- case auth_setting[:in]
309
- when 'header' then header_params[auth_setting[:key]] = auth_setting[:value]
310
- when 'query' then query_params[auth_setting[:key]] = auth_setting[:value]
311
- else fail ArgumentError, 'Authentication token must be in `query` or `header`'
312
- end
313
- end
314
- end
315
-
316
- # Sets user agent in HTTP header
317
- #
318
- # @param [String] user_agent User agent (e.g. openapi-generator/ruby/1.0.0)
319
- def user_agent=(user_agent)
320
- @user_agent = user_agent
321
- @default_headers['User-Agent'] = @user_agent
322
- end
323
-
324
- # Return Accept header based on an array of accepts provided.
325
- # @param [Array] accepts array for Accept
326
- # @return [String] the Accept header (e.g. application/json)
327
- def select_header_accept(accepts)
328
- return nil if accepts.nil? || accepts.empty?
329
- # use JSON when present, otherwise use all of the provided
330
- json_accept = accepts.find { |s| json_mime?(s) }
331
- json_accept || accepts.join(',')
332
- end
333
-
334
- # Return Content-Type header based on an array of content types provided.
335
- # @param [Array] content_types array for Content-Type
336
- # @return [String] the Content-Type header (e.g. application/json)
337
- def select_header_content_type(content_types)
338
- # return nil by default
339
- return if content_types.nil? || content_types.empty?
340
- # use JSON when present, otherwise use the first one
341
- json_content_type = content_types.find { |s| json_mime?(s) }
342
- json_content_type || content_types.first
343
- end
344
-
345
- # Convert object (array, hash, object, etc) to JSON string.
346
- # @param [Object] model object to be converted into JSON string
347
- # @return [String] JSON string representation of the object
348
- def object_to_http_body(model)
349
- return model if model.nil? || model.is_a?(String)
350
- local_body = nil
351
- if model.is_a?(Array)
352
- local_body = model.map { |m| object_to_hash(m) }
353
- else
354
- local_body = object_to_hash(model)
355
- end
356
- local_body.to_json
357
- end
358
-
359
- # Convert object(non-array) to hash.
360
- # @param [Object] obj object to be converted into JSON string
361
- # @return [String] JSON string representation of the object
362
- def object_to_hash(obj)
363
- if obj.respond_to?(:to_hash)
364
- obj.to_hash
365
- else
366
- obj
367
- end
368
- end
369
-
370
- # Build parameter value according to the given collection format.
371
- # @param [String] collection_format one of :csv, :ssv, :tsv, :pipes and :multi
372
- def build_collection_param(param, collection_format)
373
- case collection_format
374
- when :csv
375
- param.join(',')
376
- when :ssv
377
- param.join(' ')
378
- when :tsv
379
- param.join("\t")
380
- when :pipes
381
- param.join('|')
382
- when :multi
383
- # return the array directly as typhoeus will handle it as expected
384
- param
385
- else
386
- fail "unknown collection format: #{collection_format.inspect}"
387
- end
388
- end
389
- end
390
- end
@@ -1,57 +0,0 @@
1
- =begin
2
- #Flex Comms API 2.0
3
-
4
- #Communication centralised around construction data
5
-
6
- The version of the OpenAPI document: 2.0
7
- Contact: info@xbim.net
8
- Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 5.4.0
10
-
11
- =end
12
-
13
- module XbimComms
14
- class ApiError < StandardError
15
- attr_reader :code, :response_headers, :response_body
16
-
17
- # Usage examples:
18
- # ApiError.new
19
- # ApiError.new("message")
20
- # ApiError.new(:code => 500, :response_headers => {}, :response_body => "")
21
- # ApiError.new(:code => 404, :message => "Not Found")
22
- def initialize(arg = nil)
23
- if arg.is_a? Hash
24
- if arg.key?(:message) || arg.key?('message')
25
- super(arg[:message] || arg['message'])
26
- else
27
- super arg
28
- end
29
-
30
- arg.each do |k, v|
31
- instance_variable_set "@#{k}", v
32
- end
33
- else
34
- super arg
35
- end
36
- end
37
-
38
- # Override to_s to display a friendly error message
39
- def to_s
40
- message
41
- end
42
-
43
- def message
44
- if @message.nil?
45
- msg = "Error message: the server returns an error"
46
- else
47
- msg = @message
48
- end
49
-
50
- msg += "\nHTTP status code: #{code}" if code
51
- msg += "\nResponse headers: #{response_headers}" if response_headers
52
- msg += "\nResponse body: #{response_body}" if response_body
53
-
54
- msg
55
- end
56
- end
57
- end