lib/mattermost/endpoint/users.rb in mattermost-api4-ruby-0.0.1 vs lib/mattermost/endpoint/users.rb in mattermost-api4-ruby-0.0.2
- old
+ new
@@ -1,9 +1,193 @@
+require 'json'
+
module Mattermost
module Endpoint
module Users
def getMe
- get("/users/me")
+ get_user("me")
+ end
+
+ def create_user(user)
+ post("/users", :body => user.to_json)
+ end
+
+ def get_users(options = {}, max = 60)
+ query = ""
+
+ query = "#{query}&in_team=#{options[:in_team]}" if options.key? :in_team
+ query = "#{query}¬_in_team=#{options[:not_in_team]}" if options.key? :not_in_team
+
+ query = "#{query}&in_channel=#{options[:in_channel]}" if options.key? :in_channel
+ query = "#{query}¬_in_channel#{options[:not_in_channel]}" if options.key? :not_in_channel
+
+ query = "#{query}&without_team=#{options[:without_team]}" if options.key? :without_team
+
+ query = "#{query}&sort=#{options[:sort]}" if options.key? :sort
+
+ get("/users?per_page=#{max}#{query}")
+ end
+
+ def get_users_by_ids(user_ids = [])
+ post("/users/ids", :body => JSON.generate(user_ids))
+ end
+
+ def get_users_by_usernames(usernames = [])
+ post("/users/usernames", :body => JSON.generate(usernames))
+ end
+
+ def search_users(term, options = {})
+ criteria = options.dup
+ criteria[:term] = term
+ post("/users/search", :body => criteria.to_json)
+ end
+
+ def autocomplete_users(name, params = {})
+ query = "?name=#{name}"
+ query = "#{query}&team_id=#{params[:team_id]}" if params.key? :team_id
+ query = "#{query}&channel_id=#{params[:channel_id]}" if params.key? :channel_id
+
+ get("/users/autocomplete#{query}")
+ end
+
+ def get_user(user_id)
+ get("/users/#{user_id}")
+ end
+
+ def update_user(user_id, user)
+ post("/users/#{user_id}", :body => user.to_json)
+ end
+
+ def deativate_user_account(user_id)
+ delete("/users/#{user_id}")
+ end
+
+ def patch_user(user_id, patch = {})
+ put("/users/#{user_id}/patch", :body => patch.to_json)
+ end
+
+ def update_user_roles(user_id, roles)
+ put("/users/#{user_id}/roles", roles)
+ end
+
+ def update_user_active_status(user_id, active)
+ put("/users/#{user_id}/active", :body => {
+ :active => active
+ }.to_json)
+ end
+
+ def get_user_profile_image(user_id, file_name)
+ File.open(file_name, "w") do |file|
+ file.binmode
+ get(get_user_profile_image_url(user_id), stream_body: true) do |fragment|
+ file.write(fragment)
+ end
+ end
+ end
+
+ def get_user_profile_image_url(user_id)
+ "/users/#{user_id}/image"
+ end
+
+ def set_user_profile_image(user_id, image)
+ #post("/users/#{user_id}/image", image)
+ raise NotImplementedError
+ end
+
+ def get_user_by_username(username)
+ get("/users/username/#{username}")
+ end
+
+ def reset_password(code, new_password)
+ post("/users/password/reset", :body => {
+ :code => code,
+ :new_password => new_password
+ }.to_json)
+ end
+
+ def update_user_mfa(user_id, activate, code = nil)
+ params = {:activate => activate}
+ params[:code] = code if code != nil
+ put("/users/#{user_id}/mfa", params.to_json)
+ end
+
+ def generate_mfa_secret(user_id)
+ post("/users/#{user_id}/mfa/generate")
+ end
+
+ def check_mfa(login_id)
+ post("/users/mfa", :body => {:login_id => login_id}.to_json)
+ end
+
+ def update_user_password(user_id, current_password, new_password)
+ put("/users/#{user_id}/password", :body => {
+ :current_password => current_password,
+ :new_password => new_password
+ }.to_json)
+ end
+
+ def send_password_reset_email(email)
+ post("/users/password/reset/send", :body => {:email => email}.to_json)
+ end
+
+ def get_user_by_email(email)
+ get("/users/email/#{email}")
+ end
+
+ def get_user_sessions(user_id)
+ get("/users/#{user_id}/sessions")
+ end
+
+ def revoke_user_session(user_id, session_id)
+ post("/users/#{user_id}/sessions/revoke", :body => {:session_id => session_id}.to_json)
+ end
+
+ def revoke_all_active_session_for_user(user_id)
+ post("/users/#{user_id}/sessions/revoke/all")
+ end
+
+ def attach_mobile_device(device_id)
+ put("/users/sessions/device", :body => {:device_id => device_id}.to_json)
+ end
+
+ def get_user_audits(user_id)
+ get("/users/#{user_id}/audits")
+ end
+
+ def verify_user_email(token)
+ post("/users/email/verify", :body => {:token => token}.to_json)
+ end
+
+ def send_verification_email(email)
+ post("/users/email/verify/send", :body => {:email => email}.to_json)
+ end
+
+ def switch_login_method(params)
+ post("/users/login/switch", :body => params.to_json)
+ end
+
+ def create_user_access_token(user_id, description)
+ post("/users/#{user_id}/tokens", :body => {:description => description}.to_json)
+ end
+
+ def get_user_access_tokens(user_id, max = 60)
+ get("/users/#{user_id}/tokens?per_page=#{max}")
+ end
+
+ def revoke_user_access_token(token)
+ post("/users/tokens/revoke", :body => {:token => token}.to_json)
+ end
+
+ def get_user_access_token(token)
+ get("/users/tokens/#{token}")
+ end
+
+ def disable_personal_access_token(token)
+ post("/users/tokens/disable", :body => {:token => token}.to_json)
+ end
+
+ def enable_personal_access_token(token)
+ post("/users/tokens/enable", :body => {:token => token}.to_json)
end
end
end
end