Class: Sendbird::User

Inherits:
Object
  • Object
show all
Includes:
RequestHandler
Defined in:
lib/sendbird/user.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from RequestHandler

#api_class, #default_arg, included, #merge_arguments, #request!

Constructor Details

#initialize(user_id) {|_self| ... } ⇒ User

Returns a new instance of User.

Yields:

  • (_self)

Yield Parameters:



9
10
11
12
13
14
15
# File 'lib/sendbird/user.rb', line 9

def initialize(user_id)
  @user_id = user_id
  @gcm_tokens = []
  @apns_tokens = []
  @pending_requests = {}
  yield(self) if block_given?
end

Instance Attribute Details

#apns_tokensObject

Returns the value of attribute apns_tokens.



8
9
10
# File 'lib/sendbird/user.rb', line 8

def apns_tokens
  @apns_tokens
end

#gcm_tokensObject

Returns the value of attribute gcm_tokens.



8
9
10
# File 'lib/sendbird/user.rb', line 8

def gcm_tokens
  @gcm_tokens
end

#pending_requestsObject

Returns the value of attribute pending_requests.



8
9
10
# File 'lib/sendbird/user.rb', line 8

def pending_requests
  @pending_requests
end

#user_idObject (readonly)

Returns the value of attribute user_id.



8
9
10
# File 'lib/sendbird/user.rb', line 8

def user_id
  @user_id
end

Instance Method Details

#activateObject



92
93
94
95
# File 'lib/sendbird/user.rb', line 92

def activate
  merge_arguments(:activate, { activate: true })
  self
end

#deactivateObject



97
98
99
100
# File 'lib/sendbird/user.rb', line 97

def deactivate
  merge_arguments(:activate, { activate: false })
  self
end

#end_hour=(end_hour) ⇒ Object Also known as: end_hour



120
121
122
123
# File 'lib/sendbird/user.rb', line 120

def end_hour=(end_hour)
  merge_arguments(:update_push_preferences, { end_hour: end_hour })
  self
end

#end_min=(end_min) ⇒ Object Also known as: end_min



132
133
134
135
# File 'lib/sendbird/user.rb', line 132

def end_min=(end_min)
  merge_arguments(:update_push_preferences, { end_min: end_min })
  self
end

#get_push_preferencesObject



52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/sendbird/user.rb', line 52

def get_push_preferences
  response = UserApi.push_preferences(user_id)
  if response.status == 200
    response.body
  else
    raise InvalidRequest.new(
      error_message(
        response.error_message,
        __method__,
        user_id
      )
    )
  end
end

#get_unread_countObject



37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/sendbird/user.rb', line 37

def get_unread_count
  response = UserApi.unread_count(user_id)
  if response.status == 200
    response.body['unread_count']
  else
    raise InvalidRequest.new(
      error_message(
        response.error_message,
        __method__,
        user_id
      )
    )
  end
end

#get_userObject

Getters



22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/sendbird/user.rb', line 22

def get_user
  response = UserApi.view(user_id)
  if response.status == 200
    response.body
  else
    raise InvalidRequest.new(
      error_message(
        response.error_message,
        __method__,
        user_id
      )
    )
  end
end

#group_channel(channel_url) ⇒ Object



168
169
170
# File 'lib/sendbird/user.rb', line 168

def group_channel(channel_url)
  GroupChannel.new(channel_url, user_id)
end

#in_sync?Boolean

Returns:

  • (Boolean)


17
18
19
# File 'lib/sendbird/user.rb', line 17

def in_sync?
  pending_requests.empty?
end

#issue_access_token=(issue_access_token) ⇒ Object Also known as: issue_access_token



86
87
88
89
# File 'lib/sendbird/user.rb', line 86

def issue_access_token=(issue_access_token)
  merge_arguments(:update, {issue_access_token: issue_access_token})
  self
end

#mark_as_read_allObject



163
164
165
166
# File 'lib/sendbird/user.rb', line 163

def mark_as_read_all
  merge_arguments(:mark_as_read_all, {})
  self
end

#nickname=(nickname) ⇒ Object Also known as: nickname



74
75
76
77
# File 'lib/sendbird/user.rb', line 74

def nickname=(nickname)
  merge_arguments(:update, {nickname: nickname})
  self
end

#profile_url=(profile_url) ⇒ Object Also known as: profile_url



80
81
82
83
# File 'lib/sendbird/user.rb', line 80

def profile_url=(profile_url)
  merge_arguments(:update, {profile_url: profile_url})
  self
end

#push_preferences=(push_preferences = {}) ⇒ Object Also known as: push_preferences



102
103
104
105
# File 'lib/sendbird/user.rb', line 102

def push_preferences=(push_preferences={})
  merge_arguments(:update_push_preferences, push_preferences)
  self
end

#register_apns_token(token) ⇒ Object



143
144
145
146
# File 'lib/sendbird/user.rb', line 143

def register_apns_token(token)
  merge_arguments(:register_apns_token, token, ->(response){ self.apns_tokens << response.body['token'] })
  self
end

#register_gcm_token(token) ⇒ Object



138
139
140
141
# File 'lib/sendbird/user.rb', line 138

def register_gcm_token(token)
  merge_arguments(:register_gcm_token, token, ->(response){ self.gcm_tokens << response.body['token'] })
  self
end

#start_hour=(start_hour) ⇒ Object Also known as: start_hour



114
115
116
117
# File 'lib/sendbird/user.rb', line 114

def start_hour=(start_hour)
  merge_arguments(:update_push_preferences, { start_hour: start_hour })
  self
end

#start_min=(start_min) ⇒ Object Also known as: start_min



126
127
128
129
# File 'lib/sendbird/user.rb', line 126

def start_min=(start_min)
  merge_arguments(:update_push_preferences, { start_min: start_min })
  self
end

#timezone=(timezone) ⇒ Object Also known as: timezone



108
109
110
111
# File 'lib/sendbird/user.rb', line 108

def timezone=(timezone)
  merge_arguments(:update_push_preferences, { timezone: timezone })
  self
end

#unregister_all_device_tokenObject



158
159
160
161
# File 'lib/sendbird/user.rb', line 158

def unregister_all_device_token
  merge_arguments(:unregister_all_device_token, nil, ->(response) { self.apns_tokens = []; self.gcm_tokens = []; })
  self
end

#unregister_apns_token(token) ⇒ Object



153
154
155
156
# File 'lib/sendbird/user.rb', line 153

def unregister_apns_token(token)
  merge_arguments(:unregister_apns_token, token, ->(response){ self.apns_tokens.delete(response.body['token'])})
  self
end

#unregister_gcm_token(token) ⇒ Object



148
149
150
151
# File 'lib/sendbird/user.rb', line 148

def unregister_gcm_token(token)
  merge_arguments(:unregister_gcm_token, token, ->(response){ self.gcm_tokens.delete(response.body['token'])})
  self
end

#user_information=(user_information = {}) ⇒ Object Also known as: user_information

Setters



68
69
70
71
# File 'lib/sendbird/user.rb', line 68

def user_information=(user_information={})
  merge_arguments(:update, user_information)
  self
end