Class: BusinessCentral::Subscription
- Defined in:
- lib/business_central/subscription.rb
Constant Summary collapse
- API_OBJECT =
"subscriptions"
- SUPPORTED_METHODS =
[:post]
Instance Attribute Summary collapse
-
#client ⇒ Object
readonly
Returns the value of attribute client.
-
#endpoint ⇒ Object
readonly
Returns the value of attribute endpoint.
-
#resource ⇒ Object
readonly
Returns the value of attribute resource.
Instance Method Summary collapse
- #build_request_object ⇒ Object
- #create ⇒ Object
- #get ⇒ Object
-
#initialize(client, resource, endpoint) ⇒ Subscription
constructor
A new instance of Subscription.
- #perform_request(request) ⇒ Object
- #post_data ⇒ Object
- #request_url ⇒ Object
Methods inherited from Base
Methods included from ApiMethods
#delete, #get_child, #method_missing, #query, #query_child, #update
Constructor Details
#initialize(client, resource, endpoint) ⇒ Subscription
Returns a new instance of Subscription.
17 18 19 20 21 |
# File 'lib/business_central/subscription.rb', line 17 def initialize(client, resource, endpoint) @client = client.nil? ? BusinessCentral::Client.new() : client @resource = resource @endpoint = endpoint end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class BusinessCentral::ApiMethods
Instance Attribute Details
#client ⇒ Object (readonly)
Returns the value of attribute client.
15 16 17 |
# File 'lib/business_central/subscription.rb', line 15 def client @client end |
#endpoint ⇒ Object (readonly)
Returns the value of attribute endpoint.
15 16 17 |
# File 'lib/business_central/subscription.rb', line 15 def endpoint @endpoint end |
#resource ⇒ Object (readonly)
Returns the value of attribute resource.
15 16 17 |
# File 'lib/business_central/subscription.rb', line 15 def resource @resource end |
Instance Method Details
#build_request_object ⇒ Object
60 61 |
# File 'lib/business_central/subscription.rb', line 60 def build_request_object end |
#create ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/business_central/subscription.rb', line 31 def create request = Net::HTTP::Post.new(URI(request_url)) request.content_type = "application/json" request.basic_auth(@client.api_username, @client.api_password) request.body = JSON.generate(post_data) request response = perform_request(request) JSON.parse(response.body) end |
#get ⇒ Object
23 24 25 26 27 28 29 |
# File 'lib/business_central/subscription.rb', line 23 def get request = Net::HTTP::Get.new(URI(request_url)) request.content_type = "application/json" request.basic_auth(@client.api_username, @client.api_password) response = perform_request(request) JSON.parse(response.body) end |
#perform_request(request) ⇒ Object
43 44 45 46 47 |
# File 'lib/business_central/subscription.rb', line 43 def perform_request(request) Net::HTTP.start(request.uri.hostname, request.uri.port, use_ssl: true) do |http| http.request(request) end end |
#post_data ⇒ Object
53 54 55 56 57 58 |
# File 'lib/business_central/subscription.rb', line 53 def post_data { "notificationUrl": @endpoint, "resource": @resource } end |
#request_url ⇒ Object
49 50 51 |
# File 'lib/business_central/subscription.rb', line 49 def request_url "#{@client.api_host}#{@client.api_version}#{@client.api_path}/subscriptions" end |