Class: ArtemisApi::Subscription

Inherits:
Model
  • Object
show all
Defined in:
lib/artemis_api/subscription.rb

Instance Attribute Summary

Attributes inherited from Model

#attributes, #client, #id, #relationships

Class Method Summary collapse

Methods inherited from Model

#initialize, instance_for, json_type, #method_missing, related_to_many, related_to_one

Constructor Details

This class inherits a constructor from ArtemisApi::Model

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class ArtemisApi::Model

Class Method Details

.create(facility_id:, subject:, destination:, client:) ⇒ Object



13
14
15
16
17
18
19
20
21
22
# File 'lib/artemis_api/subscription.rb', line 13

def self.create(facility_id:, subject:, destination:, client:)
  client.oauth_token.refresh! if client.oauth_token.expired?

  url = "#{client.options[:base_uri]}/api/v3/facilities/#{facility_id}/subscriptions"
  params = { body: { subscription: { subject: subject, destination: destination } } }

  response = client.oauth_token.post(url, params)

  response.status == 200 ? client.process_response(response, 'subscriptions') : false
end

.delete(id:, facility_id:, client:) ⇒ Object



24
25
26
27
28
29
30
31
# File 'lib/artemis_api/subscription.rb', line 24

def self.delete(id:, facility_id:, client:)
  client.oauth_token.refresh! if client.oauth_token.expired?

  url = "#{client.options[:base_uri]}/api/v3/facilities/#{facility_id}/subscriptions/#{id}"

  response = client.oauth_token.delete(url)
  client.remove_record('subscriptions', id) if response.status == 204
end

.find(id:, facility_id:, client:, include: nil, force: false) ⇒ Object



5
6
7
# File 'lib/artemis_api/subscription.rb', line 5

def self.find(id:, facility_id:, client:, include: nil, force: false)
  client.find_one(self.json_type, id, facility_id: facility_id, include: include, force: force)
end

.find_all(facility_id:, client:, include: nil, filters: nil) ⇒ Object



9
10
11
# File 'lib/artemis_api/subscription.rb', line 9

def self.find_all(facility_id:, client:, include: nil, filters: nil)
  client.find_all(self.json_type, facility_id: facility_id, include: include, filters: filters)
end