Class: Cliskip2::Client
- Inherits:
-
Object
- Object
- Cliskip2::Client
- Includes:
- Connection, Request
- Defined in:
- lib/cliskip2/client.rb
Instance Method Summary collapse
-
#activate_user(user_id, params) ⇒ Cliskip2::User
Activate user by params.
-
#create_user(params) ⇒ Cliskip2::User
Create new user by params.
- #current_user ⇒ Object
- #delete_user(params) ⇒ Object
-
#get_community_member(community, params) ⇒ Cliskip2::CommunityParticipation
Get the community-member by params.
-
#get_user(params) ⇒ Cliskip2::User
Get the user by params.
-
#initialize(attrs = {}) ⇒ Cliskip2::Client
constructor
Initializes a new API object.
-
#join_communities(params) ⇒ Array<Cliskip2::CommunityParticipation>
Join some communities by some conditions.
-
#join_community(community, user, params) ⇒ Cliskip2::CommunityParticipation
Join the community by the target-community and params.
-
#leave_communities(params) ⇒ Array<Cliskip2::CommunityParticipation>
Leave from some communities by some conditions.
-
#leave_community(community_participation, params) ⇒ Cliskip2::CommunityParticipation
Leave from the community by the target-community and params.
-
#search_communities(params) ⇒ Array<Cliskip2::Community>
Search communities by some conditions.
-
#search_members(params) ⇒ Array<Cliskip2::Community>
Search communitiy_participatioms by some conditions.
- #sync_users(users_csv_path) ⇒ Object
-
#update_email(current_email, future_email) ⇒ Cliskip2::User
Update the email by params.
-
#update_user(params) ⇒ Cliskip2::User
Update the user by params.
Methods included from Request
Constructor Details
#initialize(attrs = {}) ⇒ Cliskip2::Client
Initializes a new API object
20 21 22 23 24 25 |
# File 'lib/cliskip2/client.rb', line 20 def initialize(attrs={}) attrs = Cliskip2..merge(attrs) Config::VALID_OPTIONS_KEYS.each do |key| instance_variable_set("@#{key}".to_sym, attrs[key]) end end |
Instance Method Details
#activate_user(user_id, params) ⇒ Cliskip2::User
Activate user by params
45 46 47 48 |
# File 'lib/cliskip2/client.rb', line 45 def activate_user user_id, params user_attr = get("/admin/tenants/#{current_user.tenant_id}/users/#{user_id}/issue_activation_code.json", params) Cliskip2::User.new(user_attr['user']) end |
#create_user(params) ⇒ Cliskip2::User
Create new user by params
38 39 40 41 |
# File 'lib/cliskip2/client.rb', line 38 def create_user params user_attr = post("/admin/tenants/#{current_user.tenant_id}/users.json", params) Cliskip2::User.new(user_attr['user']) end |
#current_user ⇒ Object
27 28 29 30 |
# File 'lib/cliskip2/client.rb', line 27 def current_user user_attr = get("/api/get_current_user") @current_user ||= Cliskip2::User.new(user_attr['user']) end |
#delete_user(params) ⇒ Object
82 83 84 85 86 87 88 89 |
# File 'lib/cliskip2/client.rb', line 82 def delete_user params if user = get_user(:email => params[:user][:email]) user_attr = delete("/admin/tenants/#{current_user.tenant_id}/users/#{user.id}.json") Cliskip2::User.new(user_attr['user']) else nil end end |
#get_community_member(community, params) ⇒ Cliskip2::CommunityParticipation
Get the community-member by params
158 159 160 161 162 163 |
# File 'lib/cliskip2/client.rb', line 158 def get_community_member community, params community_participation_attr = get("/tenants/#{current_user.tenant_id}/communities/#{community.id}/community_participations/show_by_params.json", params) Cliskip2::CommunityParticipation.new(community_participation_attr['community_participation']) rescue Faraday::Error::ResourceNotFound => e nil end |
#get_user(params) ⇒ Cliskip2::User
Get the user by params
52 53 54 55 56 57 |
# File 'lib/cliskip2/client.rb', line 52 def get_user params user_attr = get("/tenants/#{current_user.tenant_id}/users/show_by_params.json", params) Cliskip2::User.new(user_attr['user']) rescue Faraday::Error::ResourceNotFound => e nil end |
#join_communities(params) ⇒ Array<Cliskip2::CommunityParticipation>
Join some communities by some conditions
192 193 194 195 196 197 198 199 |
# File 'lib/cliskip2/client.rb', line 192 def join_communities params if user_id = params.delete(:user_id) community_participation_attrs = post("/admin/tenants/#{current_user.tenant_id}/users/#{user_id}/community_participations/join_communities.json", params) community_participation_attrs.map { |community_participation_attr| Cliskip2::CommunityParticipation.new(community_participation_attr['community_participation']) } else [] end end |
#join_community(community, user, params) ⇒ Cliskip2::CommunityParticipation
Join the community by the target-community and params
167 168 169 170 |
# File 'lib/cliskip2/client.rb', line 167 def join_community community, user, params community_participation_attr = post("/tenants/#{current_user.tenant_id}/communities/#{community.id}/community_participations.json", {:community_participation => {:user_id => user.id}}.merge(params)) Cliskip2::CommunityParticipation.new(community_participation_attr['community_participation']) end |
#leave_communities(params) ⇒ Array<Cliskip2::CommunityParticipation>
Leave from some communities by some conditions
203 204 205 206 207 208 209 210 |
# File 'lib/cliskip2/client.rb', line 203 def leave_communities params if user_id = params.delete(:user_id) community_participation_attrs = delete("/admin/tenants/#{current_user.tenant_id}/users/#{user_id}/community_participations/leave_communities.json", params) community_participation_attrs.map { |community_participation_attr| Cliskip2::CommunityParticipation.new(community_participation_attr['community_participation']) } else [] end end |
#leave_community(community_participation, params) ⇒ Cliskip2::CommunityParticipation
Leave from the community by the target-community and params
174 175 176 177 |
# File 'lib/cliskip2/client.rb', line 174 def leave_community community_participation, params community_participation_attr = delete("/tenants/#{current_user.tenant_id}/communities/#{community_participation.community_id}/community_participations/#{community_participation.id}.json", params) Cliskip2::CommunityParticipation.new(community_participation_attr['community_participation']) end |
#search_communities(params) ⇒ Array<Cliskip2::Community>
Search communities by some conditions
151 152 153 154 |
# File 'lib/cliskip2/client.rb', line 151 def search_communities params community_attrs = get("/tenants/#{current_user.tenant_id}/communities.json", params) community_attrs.map {|community_attr| Cliskip2::Community.new(community_attr['community']) } end |
#search_members(params) ⇒ Array<Cliskip2::Community>
Search communitiy_participatioms by some conditions
181 182 183 184 185 186 187 188 |
# File 'lib/cliskip2/client.rb', line 181 def search_members params if user_id = params.delete(:user_id) community_participation_attrs = get("/admin/tenants/#{current_user.tenant_id}/users/#{user_id}/community_participations.json", params) community_participation_attrs.map { |community_participation_attr| Cliskip2::CommunityParticipation.new(community_participation_attr['community_participation']) } else [] end end |
#sync_users(users_csv_path) ⇒ Object
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
# File 'lib/cliskip2/client.rb', line 91 def sync_users users_csv_path inserted_users_count = 0 updated_users_count = 0 deleted_users_count = 0 failed_users_count = 0 skipped_users_count = 0 logger.info 'Start syncing users...' CSV.foreach(File.(users_csv_path), :headers => true, :encoding => 'UTF-8') do |row| begin if email = row['email'] and email != '' if user = self.get_user(:email => email) if user.status == 'UNUSED' && row['status'] == 'RETIRED' self.delete_user :user => {:email => email} logger.info " Deleted email: #{email}" deleted_users_count = deleted_users_count + 1 else self.update_user :user => {:name => row['name'], :email => email, :section => row['section'], :status => row['status']} logger.info " Updated email: #{email}" updated_users_count = updated_users_count + 1 end else unless row['status'] == 'RETIRED' self.create_user :user => {:name => row['name'], :email => email, :section => row['section']} logger.info " Inserted email: #{email}" inserted_users_count = inserted_users_count + 1 else logger.info " Skipped to sync users. because of retired user." skipped_users_count = skipped_users_count + 1 end end else logger.info " Skipped to sync users. because of blank-email." skipped_users_count = skipped_users_count + 1 end rescue Faraday::Error::ClientError => e logger.error " Failed email: #{email}" failed_users_count = failed_users_count + 1 logger.error e. rescue => e logger.error " Failed email: #{email}" failed_users_count = failed_users_count + 1 logger.error e end end logger.info 'Finish syncing users...' { :inserted_users_count => inserted_users_count, :updated_users_count => updated_users_count, :deleted_users_count => deleted_users_count, :failed_users_count => failed_users_count, :skipped_users_count => skipped_users_count } end |
#update_email(current_email, future_email) ⇒ Cliskip2::User
Update the email by params
72 73 74 75 76 77 78 79 80 |
# File 'lib/cliskip2/client.rb', line 72 def update_email current_email, future_email if user = get_user(:email => current_email) params = {:user => {:email => future_email}} user_attr = put("/admin/tenants/#{current_user.tenant_id}/users/#{user.id}.json", params) Cliskip2::User.new(user_attr['user']) else nil end end |
#update_user(params) ⇒ Cliskip2::User
Update the user by params
61 62 63 64 65 66 67 68 |
# File 'lib/cliskip2/client.rb', line 61 def update_user params if user = get_user(:email => params[:user][:email]) user_attr = put("/admin/tenants/#{current_user.tenant_id}/users/#{user.id}.json", params) Cliskip2::User.new(user_attr['user']) else nil end end |