Class: Pushover::Groups
- Inherits:
-
Object
- Object
- Pushover::Groups
- Defined in:
- lib/pushover/groups.rb
Overview
Groups provides operations for the Delivery Groups API.
Constant Summary collapse
- GROUP_PATTERN =
/\A[A-Za-z0-9]{30}\z/
Instance Method Summary collapse
-
#add_user(group:, user:, device: nil, memo: nil) ⇒ Response
Add a user membership to a delivery group.
-
#create(name:) ⇒ Response
Create an empty delivery group.
-
#disable_user(group:, user:, device: nil) ⇒ Response
Temporarily disable a user's matching group memberships.
-
#enable_user(group:, user:, device: nil) ⇒ Response
Re-enable a user's matching group memberships.
-
#get(group:) ⇒ Response
Retrieve a delivery group's name and users.
-
#initialize(client) ⇒ Groups
constructor
A new instance of Groups.
-
#list ⇒ Response
List delivery groups owned by the client's account or team.
-
#remove_user(group:, user:, device: nil) ⇒ Response
Remove a user's matching memberships from a delivery group.
-
#rename(group:, name:) ⇒ Response
Rename a delivery group.
Constructor Details
#initialize(client) ⇒ Groups
Returns a new instance of Groups.
8 9 10 |
# File 'lib/pushover/groups.rb', line 8 def initialize(client) @client = client end |
Instance Method Details
#add_user(group:, user:, device: nil, memo: nil) ⇒ Response
Add a user membership to a delivery group.
48 49 50 51 52 53 54 55 |
# File 'lib/pushover/groups.rb', line 48 def add_user(group:, user:, device: nil, memo: nil) validate_membership!(group, user, device) validate_memo!(memo) unless memo.nil? fields = membership_fields(user, device) fields['memo'] = memo unless memo.nil? post_group_action(group, 'add_user', fields) end |
#create(name:) ⇒ Response
Create an empty delivery group.
14 15 16 17 18 19 20 21 22 |
# File 'lib/pushover/groups.rb', line 14 def create(name:) validate_name!(name) response = @client.connection.post( path: '/1/groups.json', body: Oj.dump('token' => @client.token, 'name' => name) ) Response.create_from_excon_response(response) end |
#disable_user(group:, user:, device: nil) ⇒ Response
Temporarily disable a user's matching group memberships.
65 66 67 |
# File 'lib/pushover/groups.rb', line 65 def disable_user(group:, user:, device: nil) post_user_action('disable_user', group:, user:, device:) end |
#enable_user(group:, user:, device: nil) ⇒ Response
Re-enable a user's matching group memberships.
71 72 73 |
# File 'lib/pushover/groups.rb', line 71 def enable_user(group:, user:, device: nil) post_user_action('enable_user', group:, user:, device:) end |
#get(group:) ⇒ Response
Retrieve a delivery group's name and users.
36 37 38 39 40 41 42 43 44 |
# File 'lib/pushover/groups.rb', line 36 def get(group:) validate_group!(group) response = @client.connection.get( path: "/1/groups/#{group}.json", query: { token: @client.token } ) Response.create_from_excon_response(response) end |
#list ⇒ Response
List delivery groups owned by the client's account or team.
26 27 28 29 30 31 32 |
# File 'lib/pushover/groups.rb', line 26 def list response = @client.connection.get( path: '/1/groups.json', query: { token: @client.token } ) Response.create_from_excon_response(response) end |
#remove_user(group:, user:, device: nil) ⇒ Response
Remove a user's matching memberships from a delivery group.
59 60 61 |
# File 'lib/pushover/groups.rb', line 59 def remove_user(group:, user:, device: nil) post_user_action('remove_user', group:, user:, device:) end |
#rename(group:, name:) ⇒ Response
Rename a delivery group.
77 78 79 80 81 |
# File 'lib/pushover/groups.rb', line 77 def rename(group:, name:) validate_group!(group) validate_name!(name) post_group_action(group, 'rename', 'name' => name) end |