class Urbanairship::Devices::ChannelTags
Attributes
add_group[R]
audience[R]
client[W]
remove_group[R]
set_group[R]
Public Class Methods
new(client: required('client'))
click to toggle source
# File lib/urbanairship/devices/channel_tags.rb, line 12 def initialize(client: required('client')) @client = client @audience = {} @add_group = {} @remove_group = {} @set_group = {} @path = channel_path('tags/') end
Public Instance Methods
add(group_name: required('group_name'), tags: required('tags'))
click to toggle source
# File lib/urbanairship/devices/channel_tags.rb, line 33 def add(group_name: required('group_name'), tags: required('tags')) @add_group[group_name] = tags end
remove(group_name: required('group_name'), tags: required('tags'))
click to toggle source
# File lib/urbanairship/devices/channel_tags.rb, line 37 def remove(group_name: required('group_name'), tags: required('tags')) @remove_group[group_name] = tags end
send_request()
click to toggle source
# File lib/urbanairship/devices/channel_tags.rb, line 45 def send_request payload = {} fail ArgumentError, 'An audience is required for modifying tags' if @audience.empty? fail ArgumentError, 'A tag request cannot both add and set tags' if !@add_group.empty? and !@set_group.empty? fail ArgumentError, 'A tag request cannot both remove and set tags' if !@remove_group.empty? and !@set_group.empty? fail ArgumentError, 'A tag request must add, remove, or set a tag' if @remove_group.empty? and @add_group.empty? and @set_group.empty? payload['audience'] = @audience payload['add'] = @add_group unless @add_group.empty? payload['remove'] = @remove_group unless @remove_group.empty? payload['set'] = @set_group unless @set_group.empty? response = @client.send_request( method: 'POST', body: JSON.dump(payload), path: @path, content_type: 'application/json' ) logger.info("Set tags for audience: #{@audience}") response end
set(group_name: required('group_name'), tags: required('tags'))
click to toggle source
# File lib/urbanairship/devices/channel_tags.rb, line 41 def set(group_name: required('group_name'), tags: required('tags')) @set_group[group_name] = tags end
set_audience(ios: nil, android: nil, amazon: nil)
click to toggle source
# File lib/urbanairship/devices/channel_tags.rb, line 21 def set_audience(ios: nil, android: nil, amazon: nil) if ios @audience['ios_channel'] = ios end if android @audience['android_channel'] = android end if amazon @audience['amazon_channel'] = amazon end end