alula-ruby 1.8.1 → 1.9.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a508fa6a1f2b9e59136e9e188458c4ed4e21cb82242dddf5f05523876a391c8d
4
- data.tar.gz: d71c8ac244ce5c84d3078aa456f70358a1b8824afd27794b6347b46ff43086e1
3
+ metadata.gz: d2d96c37fe6b396ea7da51191870f6cf2fdf2161ba4c584886de23ca13f71286
4
+ data.tar.gz: 7762865147e3ef70241bfdc8122cde25b0349f516cd264296f0b7c98cb745923
5
5
  SHA512:
6
- metadata.gz: d281008db754b5774489cb19e00a8a076403ee7319a15d0a4e16991416c570b115fd0ef1b37aacc6d5b16fc65c8f7636670884245385150411d6b1551574eb58
7
- data.tar.gz: e04bf33ee07bdc96869782224b336152caeef7ad5169823ef947e6d5d27bec5482698f3249a13cf4038972b8c9d312a3df4c9f249ebd3f8e442909ea60980c75
6
+ metadata.gz: 6b7d9e60e505aed16f071afdbaff707ecfd63bcec9e2cd5b537c36b341744406dea9e3ad182a57e88327432069a7d15df6d427b5dd0664d7cad68feb8b6019e6
7
+ data.tar.gz: 7bd25d2a60a166e68ac1e8cf8daed1928b40260384cf806f7f9c4c12aef543e5187af00eefc613088842d25cd1dcff257d1a2f41e93a1a455d6367d1a9ed03ea
data/VERSION.md CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  | Version | Date | Description |
4
4
  | ------- | --------- | --------------------------------------------------------------------------- |
5
+ | v1.9.0 | 2024-07-03 | Add DeviceNotification resource with relationships |
5
6
  | v1.8.1 | 2024-06-25 | Update client to accept impersonator authorization to change admin user langauge preference from dealer app |
6
7
  | v1.8.0 | 2024-06-19 | Use Video API endpoints instead of core API passthrough |
7
8
  | v1.7.0 | 2024-06-13 | Add DELETE, PATCH/POST, unregister capabilities for cameras |
data/bin/console CHANGED
@@ -11,5 +11,41 @@ require "dotenv/load"
11
11
  # require "pry"
12
12
  # Pry.start
13
13
 
14
- require "irb"
14
+ require 'irb'
15
+
16
+ # setup API
17
+ def auth_api
18
+ token = oauth_token
19
+ raise token if [Alula::Oauth::Error, Alula::RateLimitError].include? token.class
20
+
21
+ setup_client(token)
22
+ puts 'API configured successfully'
23
+ end
24
+
25
+ def setup_oatuh
26
+ Alula::Oauth.configure(
27
+ client_id: ENV['ALULA_API_CLIENT_ID'],
28
+ client_secret: ENV['ALULA_API_CLIENT_SECRET'],
29
+ api_url: ENV['ALULA_API_DOMAIN']
30
+ )
31
+ end
32
+
33
+ def oauth_token
34
+ setup_oatuh
35
+ Alula::Oauth.authenticate(
36
+ grant_type: :client_credentials,
37
+ scopes: 'rpc:devices.register rpc:devices.assign rest:*'
38
+ )
39
+ end
40
+
41
+ def setup_client(token)
42
+ Alula::Client.configure do |c|
43
+ c.api_url = ENV['ALULA_API_DOMAIN']
44
+ c.api_key = token.access_token
45
+ c.role = :system
46
+ c.video_api_url = ENV['VIDEO_API_DOMAIN']
47
+ c.video_api_key = ENV['VIDEO_API_DOMAIN']
48
+ end
49
+ end
50
+
15
51
  IRB.start(__FILE__)
@@ -30,7 +30,7 @@ module Alula
30
30
  # relationship :eventlog, type: 'devices-eventlog', cardinality: 'To-many'
31
31
  relationship :receiver_group, type: 'receivers-groups', cardinality: 'To-one'
32
32
  # relationship :helix_users, type: 'helix-user', cardinality: 'To-many'
33
- # relationship :notifications, type: 'devices-notification', cardinality: 'To-many'
33
+ relationship :notifications, type: 'device-notifications', cardinality: 'To-many'
34
34
  # relationship :users, type: 'devices-user', cardinality: 'To-many'
35
35
  # relationship :features_supported, type: 'devices-features-supported', cardinality: 'To-one'
36
36
  # relationship :features_disabled, type: 'devices-features-disabled', cardinality: 'To-one'
@@ -0,0 +1,88 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Alula
4
+ class DeviceNotification < Alula::RestResource
5
+ extend Alula::ResourceAttributes
6
+ extend Alula::RelationshipAttributes
7
+ extend Alula::ApiOperations::Request
8
+ extend Alula::ApiOperations::List
9
+ extend Alula::ApiOperations::Save
10
+
11
+ resource_path 'devices/notifications'
12
+ type 'device-notifications'
13
+
14
+ relationship :device, type: 'devices', cardinality: 'To-one'
15
+ relationship :revisions, type: 'revisions', cardinality: 'To-many'
16
+ relationship :user, type: 'users', cardinality: 'To-one'
17
+
18
+ field :id,
19
+ type: :string,
20
+ sortable: false,
21
+ filterable: false,
22
+ creatable_by: %i[],
23
+ patchable_by: %i[]
24
+
25
+ field :alarms,
26
+ type: :array,
27
+ sortable: false,
28
+ filterable: false,
29
+ creatable_by: %i[system station dealer technician user sub_user],
30
+ patchable_by: %i[system station dealer technician user sub_user]
31
+
32
+ field :bypasses_disables,
33
+ type: :array,
34
+ sortable: false,
35
+ filterable: false,
36
+ creatable_by: %i[system station dealer technician user sub_user],
37
+ patchable_by: %i[system station dealer technician user sub_user]
38
+
39
+ field :device_id,
40
+ type: :string,
41
+ sortable: false,
42
+ filterable: true,
43
+ creatable_by: %i[system station dealer technician user sub_user],
44
+ patchable_by: %i[]
45
+
46
+ field :i_view_now,
47
+ type: :array,
48
+ sortable: false,
49
+ filterable: false,
50
+ creatable_by: %i[system station dealer technician user sub_user],
51
+ patchable_by: %i[system station dealer technician user sub_user]
52
+
53
+ field :open_close,
54
+ type: :array,
55
+ sortable: false,
56
+ filterable: false,
57
+ creatable_by: %i[system station dealer technician user sub_user],
58
+ patchable_by: %i[system station dealer technician user sub_user]
59
+
60
+ field :supervisory,
61
+ type: :array,
62
+ sortable: false,
63
+ filterable: false,
64
+ creatable_by: %i[system station dealer technician user sub_user],
65
+ patchable_by: %i[system station dealer technician user sub_user]
66
+
67
+ field :test_misc,
68
+ type: :array,
69
+ sortable: false,
70
+ filterable: false,
71
+ creatable_by: %i[system station dealer technician user sub_user],
72
+ patchable_by: %i[system station dealer technician user sub_user]
73
+
74
+ field :troubles,
75
+ type: :array,
76
+ sortable: false,
77
+ filterable: false,
78
+ creatable_by: %i[system station dealer technician user sub_user],
79
+ patchable_by: %i[system station dealer technician user sub_user]
80
+
81
+ field :user_id,
82
+ type: :string,
83
+ sortable: false,
84
+ filterable: true,
85
+ creatable_by: %i[system station dealer technician user sub_user],
86
+ patchable_by: %i[]
87
+ end
88
+ end
@@ -13,6 +13,7 @@ module Alula
13
13
  # Relationships
14
14
  relationship :creator, type: 'users', cardinality: 'To-one'
15
15
  relationship :device, type: 'devices', cardinality: 'To-one'
16
+ relationship :device_notification, type: 'device-notifications', cardinality: 'To-one'
16
17
  relationship :user, type: 'users', cardinality: 'To-one'
17
18
  relationship :dealer, type: 'dealers', cardinality: 'To-one'
18
19
 
@@ -82,7 +83,6 @@ module Alula
82
83
  creatable_by: [],
83
84
  patchable_by: []
84
85
 
85
-
86
86
  def document
87
87
  JSON.parse(@values['document'])
88
88
  .with_indifferent_access
@@ -12,6 +12,7 @@ module Alula
12
12
  type 'users'
13
13
 
14
14
  relationship :devices, type: 'devices', cardinality: 'To-many'
15
+ relationship :device_notifications, type: 'device-notifications', cardinality: 'To-many'
15
16
  relationship :dealer, type: 'dealers', cardinality: 'To-one'
16
17
  relationship :phone, type: 'users-phones', cardinality: 'To-one'
17
18
  relationship :address, type: 'users-addresses', cardinality: 'To-one'
data/lib/alula/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Alula
4
- VERSION = '1.8.1'
4
+ VERSION = '1.9.0'
5
5
  end
data/lib/alula.rb CHANGED
@@ -60,6 +60,7 @@ require_relative 'alula/resources/revision'
60
60
  require_relative 'alula/resources/station'
61
61
  require_relative 'alula/resources/oauth_client'
62
62
  require_relative 'alula/resources/device_alias'
63
+ require_relative 'alula/resources/device_notification'
63
64
 
64
65
  require_relative 'alula/resources/feature_plan'
65
66
  require_relative 'alula/resources/feature_planvideo'
@@ -106,34 +107,36 @@ module Alula
106
107
  # API query responses, and included models.
107
108
  @@resource_map = [
108
109
  Alula::BillingProgram,
110
+ Alula::Dealer,
111
+ Alula::DealerAccountTransfer,
112
+ Alula::DealerBranding,
113
+ Alula::DealerPhone,
114
+ Alula::DealerProgram,
109
115
  Alula::Device,
110
116
  Alula::DeviceAlias,
111
117
  Alula::DeviceCharge,
112
118
  Alula::DeviceCredit,
113
119
  Alula::DeviceEventLog,
120
+ Alula::DeviceNotification,
114
121
  Alula::DeviceProgram,
115
122
  Alula::DealerAddress,
116
- Alula::DealerPhone,
117
- Alula::DealerProgram,
118
123
  Alula::DeviceCellularStatus,
119
- Alula::Self,
120
- Alula::User,
121
- Alula::UserPhone,
122
- Alula::UserAddress,
123
- Alula::UserPushtoken,
124
- Alula::UserPreferences,
125
- Alula::UserVideoProfile,
126
- Alula::Dealer,
127
- Alula::DealerBranding,
128
- Alula::ReceiverGroup,
129
- Alula::ReceiverDisabled,
130
- Alula::Station,
131
- Alula::DealerAccountTransfer,
124
+ Alula::FeatureBySubject,
132
125
  Alula::FeaturePlan,
133
126
  Alula::FeaturePlanVideo,
134
127
  Alula::FeaturePrice,
135
- Alula::FeatureBySubject,
136
128
  Alula::OAuthClient,
129
+ Alula::ReceiverGroup,
130
+ Alula::ReceiverDisabled,
131
+ Alula::Revision,
132
+ Alula::Self,
133
+ Alula::Station,
134
+ Alula::User,
135
+ Alula::UserAddress,
136
+ Alula::UserPhone,
137
+ Alula::UserPreferences,
138
+ Alula::UserPushtoken,
139
+ Alula::UserVideoProfile
137
140
  ].each_with_object({}) do |klass, resource_map|
138
141
  resource_map[klass.get_type] = klass
139
142
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alula-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.1
4
+ version: 1.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Titus Johnson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-06-25 00:00:00.000000000 Z
11
+ date: 2024-07-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -260,6 +260,7 @@ files:
260
260
  - lib/alula/resources/device_charge.rb
261
261
  - lib/alula/resources/device_credit.rb
262
262
  - lib/alula/resources/device_event_log.rb
263
+ - lib/alula/resources/device_notification.rb
263
264
  - lib/alula/resources/device_program.rb
264
265
  - lib/alula/resources/event_trigger.rb
265
266
  - lib/alula/resources/event_webhook.rb