Class: WhatsappSdk::Api::Client
- Inherits:
-
Object
- Object
- WhatsappSdk::Api::Client
- Defined in:
- lib/whatsapp_sdk/api/client.rb
Constant Summary collapse
- API_VERSIONS =
[ 'v21.0', 'v20.0', 'v19.0', 'v18.0', 'v17.0', 'v16.0', 'v15.0', 'v14.0', 'v13.0', 'v12.0', 'v11.0', 'v10.0', 'v9.0', 'v8.0', 'v7.0', 'v6.0', 'v5.0', 'v4.0', 'v3.3', 'v3.2', 'v3.1', 'v3.0', 'v2.12', 'v2.11', 'v2.10', 'v2.9', 'v2.8', 'v2.7', 'v2.6', 'v2.5', 'v2.4', 'v2.3', 'v2.2', 'v2.1' ].freeze
Instance Method Summary collapse
- #business_profiles ⇒ Object
- #download_file(url:, content_type_header:, file_path: nil) ⇒ Object
-
#initialize(access_token = WhatsappSdk.configuration.access_token, api_version = WhatsappSdk.configuration.api_version, logger = nil, logger_options = {}) ⇒ Client
constructor
A new instance of Client.
- #media ⇒ Object
- #messages ⇒ Object
- #phone_numbers ⇒ Object
- #send_request(endpoint: "", full_url: nil, http_method: "post", params: {}, headers: {}, multipart: false) ⇒ Object
- #templates ⇒ Object
Constructor Details
#initialize(access_token = WhatsappSdk.configuration.access_token, api_version = WhatsappSdk.configuration.api_version, logger = nil, logger_options = {}) ⇒ Client
16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/whatsapp_sdk/api/client.rb', line 16 def initialize( access_token = WhatsappSdk.configuration.access_token, api_version = WhatsappSdk.configuration.api_version, logger = nil, = {} ) @access_token = access_token @logger = logger = validate_api_version(api_version) @api_version = api_version end |
Instance Method Details
#business_profiles ⇒ Object
42 43 44 |
# File 'lib/whatsapp_sdk/api/client.rb', line 42 def business_profiles @business_profiles ||= WhatsappSdk::Api::BusinessProfile.new(self) end |
#download_file(url:, content_type_header:, file_path: nil) ⇒ Object
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/whatsapp_sdk/api/client.rb', line 66 def download_file(url:, content_type_header:, file_path: nil) uri = URI.parse(url) request = Net::HTTP::Get.new(uri) request["Authorization"] = "Bearer #{@access_token}" request.content_type = content_type_header = { use_ssl: uri.scheme == "https" } response = Net::HTTP.start(uri.hostname, uri.port, ) do |http| http.request(request) end File.write(file_path, response.body, mode: 'wb') if response.code == "200" && file_path response end |
#media ⇒ Object
30 31 32 |
# File 'lib/whatsapp_sdk/api/client.rb', line 30 def media @media ||= WhatsappSdk::Api::Medias.new(self) end |
#messages ⇒ Object
34 35 36 |
# File 'lib/whatsapp_sdk/api/client.rb', line 34 def ||= WhatsappSdk::Api::Messages.new(self) end |
#phone_numbers ⇒ Object
38 39 40 |
# File 'lib/whatsapp_sdk/api/client.rb', line 38 def phone_numbers @phone_numbers ||= WhatsappSdk::Api::PhoneNumbers.new(self) end |
#send_request(endpoint: "", full_url: nil, http_method: "post", params: {}, headers: {}, multipart: false) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/whatsapp_sdk/api/client.rb', line 50 def send_request(endpoint: "", full_url: nil, http_method: "post", params: {}, headers: {}, multipart: false) url = full_url || "#{ApiConfiguration::API_URL}/#{@api_version}/" faraday_request = faraday(url:, multipart:) response = faraday_request.public_send(http_method, endpoint, request_params(params, headers), headers) if response.status > 499 || Api::Responses::GenericErrorResponse.response_error?(response: response.body) raise Api::Responses::HttpResponseError.new(http_status: response.status, body: JSON.parse(response.body)) end return nil if response.body == "" JSON.parse(response.body) end |
#templates ⇒ Object
46 47 48 |
# File 'lib/whatsapp_sdk/api/client.rb', line 46 def templates @templates ||= WhatsappSdk::Api::Templates.new(self) end |